2017-02-21 1 views
0

나는 purchase_day, customer_name, products_purchased라는 세 개의 열이있는 pandas df를 가지고있다.groupby by pandas에서 행 색인이 엉망이되다

각 고객이 상점을 방문한 일 수의 배열을 반환하고 싶습니다. 그래서처럼 보이는 테이블 반환

gpd = df.groupby(by=['customer_name', 'purchase_day']).count() 

을 사용 :이 테이블을 반환과 함께, 내가 때문에 특별한 형식의 그것에 GROUPBY 실행할 수 없습니다 불행하게도 enter image description here

을 (CUSTOMER_NAME 및 purchase_days '은 때로 믿을 곳 t는 첫 번째 행에 있지만 두 번째 행에 있음).

각 고객이 방문한 purchase_days의 수를 계산할 수있는 정보가 있습니까?

+0

종이에 그림 대신 코드로 실제 결과를 추가 할 수 있습니까? 나는 노력에 감사한다 : P – miradulo

답변

1

색인을 재설정해야합니다.

당신이 .groupby 여러 열로 dataframe을 적용하기 때문에,

는 dataframe는 MultiIndex있을 것입니다 돌아왔다.

gpd = df.groupby(by=['customer_name', 'purchase_day']).count().reset_index()

또한 당신은 여전히 ​​multiindexed dataframe으로 .groupby을 적용 할 수 있습니다. 방법 pandas.DataFrame.groupbydocumentation에서

,

은 파라는 GROUPBY 열 등 multiindices을 설정하는 데 사용할 수있는 level있다.

here을 확인할 수있는 SO 스레드가 있습니다.

관련 문제