pandas 구간별 평균 구하는 방법
조회수 1468회
x y z
a 1 2 3
a 2 2 2
a 3 5 1
a 4 3 4
a -1 -1 -1
b 5 2 3
b 4 3 1
b 3 8 3
b 4 1 2
pandas에서 구간별 평균을 구하는 방법이 있는지 궁금하여 질문드립니다. 위와 같은 데이터 파일이 있을 때 저는 -1로 표시되어 있는 부분을 기준으로 위의 a의 평균과 b의 평균값을 구하고 싶습니다. groupby.mean을 사용하여 평균을 구하게 되면 a에서 -1의 값이 포함되어 평균값이 구해질텐데요, -1을 제외하고 그 나머지 평균을 구하는 코드가 있을까요?
1 답변
-
Pandas의 groupby를 사용하여 구간별 평균을 계산할 수 있습니다. -1 값을 제외한 평균을 계산하려면, groupby 후에 -1 값을 필터링하여 평균을 계산하면 됩니다.
import pandas as pd import numpy as np # 데이터 프레임 생성 data = { 'x': ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b'], 'y': [1, 2, 3, 4, -1, 5, 4, 3, 4], 'z': [2, 2, 5, 3, -1, 2, 3, 8, 1] } df = pd.DataFrame(data) # -1 값을 NaN으로 변환 df.replace(-1, np.nan, inplace=True) # 그룹별 평균 계산 result = df.groupby('x').mean() print(result)
댓글 입력