파이썬에서 열의 레이블을 기반으로 평균과 중앙값을 계산하는 방법

Aug 21 2020

다음과 유사한 큰 데이터 프레임이 있습니다.

price   type      status
2       shoes      none
3       clothes    none
6       clothes    none
3       shoes      none
4       shoes      none
6       shoes      none
2       clothes    none
3       shoes      none
6       clothes    none
8       clothes    done

기본적으로 "상태"가 작성 될 때마다 "유형"을 기준으로 평균과 중앙값을 계산하고 싶습니다. 지금까지 내가 한 일은 "완료"상태를 기준으로 먼저 그룹을 만든 다음 아래 스크립트와 같이 그룹의 평균과 중앙값을 계산합니다.

g = df['status'].eq('done').iloc[::-1].cumsum().iloc[::-1]
grouper = df.groupby(g)
df_statistics = grouper.agg(
               mean = ('price', 'mean')
              ,median = ('price', 'median')
)
df_freq = df.groupby(g).apply(lambda x: x['price'].value_counts().idxmax())

"유형"에 대한 매개 변수를 하나 더 추가하면 스크립트가 "유형"을 기반으로 각 그룹의 중앙값도 추정 할 수 있습니다.

감사합니다

답변

1 jezrael Aug 21 2020 at 17:06

목록에 열 이름을 전달한 다음 다음으로 전달해야한다고 생각합니다 groupby.

grouper = df.groupby([g, 'type'])