2015-08-14 43 views
0

我使用了一個元組列錯誤.groupby和.agg使用一個元組列

這裏有使用 .groupby 和 .agg 麻煩時,是.INFO()

account_aggregates.info() 

<class 'pandas.core.frame.DataFrame'> 
Int64Index: 9713 entries, 0 to 9712 
Data columns (total 14 columns): 
NATIVEACCOUNTKEY   9713 non-null int64 
(POLL, sum)    9713 non-null int64 
num_cancellations   8 non-null float64 

我試圖做這樣的事情:

session_deciles2_grouped = account_aggregates.groupby(('POLL','sum')) 

這:

session_deciles22=session_deciles2_grouped[('POLL','sum')].agg(['mean','count']) 

但列未被識別 - 我不斷收到關鍵錯誤。

+0

'account_aggregates.groupby([('POLL','sum'),])'有效嗎? 'account_aggregates.groupby((''POLL','sum'))'聽起來像有一個列'POLL',並有一個'sum'列,groupby應該使用它們兩個作爲關鍵字。 –

+0

是的。 account_aggregates.groupby([('POLL','sum'),])確實有效。爲什麼我需要在我的元組(需要())周圍有[]? –

回答

1

account_aggregates.groupby([('POLL','sum'),])將需要在這裏。

原因account_aggregates.groupby(('POLL','sum'))將無法​​工作是因爲('POLL','sum')是一個集合,groupby讀取此爲有一個名爲POLL,有一個叫sum列列,然後用兩列做GROUPBY操作。

當我們把('POLL','sum')放在一個列表中時,它意味着groupby被一列('POLL','sum')所列。因此,account_aggregates.groupby([('POLL','sum'),])account_aggregates.groupby((('POLL','sum'),))將工作。

+0

感謝CT的解釋 –

+0

乾杯,歡迎您。 –