2016-08-11 5 views
2

를 만들기 위해 내가 periodactive_seconds의 합과 양 (하나의 번호가 한 기간)으로 표를 얻으려면 팬더는 : GROUPBY를 사용하여 테이블을

i,Unnamed: 0,ID,active_seconds,subdomain,search_term,period,code,buy  
0,56574,08cd0141663315ce71e0121e3cd8d91f,6,market.yandex.ru,None,515,100.0,1.0 
1,56576,08cd0141663315ce71e0121e3cd8d91f,26,market.yandex.ru,None,515,100.0,1.0 
2,56578,08cd0141663315ce71e0121e3cd8d91f,14,market.yandex.ru,None,515,100.0,1.0 
3,56579,08cd0141663315ce71e0121e3cd8d91f,2,market.yandex.ru,None,515,100.0,1.0 
4,56581,08cd0141663315ce71e0121e3cd8d91f,8,market.yandex.ru,None,515,100.0,1.0 
5,56582,08cd0141663315ce71e0121e3cd8d91f,32,market.yandex.ru,None,515,100.0,1.0 
6,56583,08cd0141663315ce71e0121e3cd8d91f,16,market.yandex.ru,None,515,100.0,1.0 
7,56584,08cd0141663315ce71e0121e3cd8d91f,4,market.yandex.ru,None,515,100.0,1.0 
8,56585,08cd0141663315ce71e0121e3cd8d91f,10,market.yandex.ru,None,515,100.0,1.0 
9,56639,08cd0141663315ce71e0121e3cd8d91f,2,market.yandex.ru,None,516,100.0,1.0 

dataframe

있습니다. 이 경우이 ID에 마침표 수량 = 2을 가져 오려고합니다. 나는
df.groupby(['ID', 'buy']).agg({'period': len, 'active_seconds': sum}).rename(columns={'active_seconds': 'count_sec', 'period': 'sum_session'}).reset_index() 

를 사용하지만 기간의 수량에 uncorrectly 값을 반환합니다. 어떻게 해결할 수 있습니까?

답변

1

사용 'nunique' 대신 len

df.groupby(['ID', 'buy']).agg({'period': 'nunique', 'active_seconds': sum}) \ 
    .rename(columns={'active_seconds': 'count_sec', 'period': 'sum_session'}).reset_index() 

enter image description here