2016-10-07 95 views
2

我有以下數據集:熊貓集團和記錄分組值

Code Value 
100004 1 
1017 1 
1017 3 
1071 1 
1071 3 
3039 1 
3397 1 
3397 3 

我能指望使用pandasDataFrame.groupby( '代碼',as_index = FALSE).agg( '計數')

價值

我想計數並在同一時間將值記錄在新列中。我希望結果看起來像下面的示例

Code  NoValues  Values 
100004  1    1 
1017  2    1,3 
1071  2    1,3 
3039  1    1 
3397  2    1,3 

是否可以用熊貓做到這一點?

回答

1

您可以使用groupby + agg

df.Value.groupby(df.Code).agg({'Values': lambda g: list(g), 'NumValues': lambda g: len(g)}).reset_index() 

例如:

df = pd.DataFrame({'Code': [1004, 1004, 1007], 'Value': [1, 2, 8]}) 
>>> df.Value.groupby(df.Code).agg({'Values': lambda g: list(g), 'NumValues': lambda g: len(g)}).reset_index() 
    Code NumValues Values 
0 1004 2 [1, 2] 
1 1007 1 [3] 
+0

謝謝@Ami Tavory,但不是我所期待的。在我想要記錄的字段值中,用逗號分隔的字符串是被計數的值。因此,對於代碼1004,我有2的計數,並且由1和2組成,所以最終結果是1004 2(值的數量)1,2(計算的值) –

+0

@IonutSandric不,沒關係 - 我看到那現在。這只是我第一次回答,然後格式化了你的問題。等一下。 –

+0

@IonutSandric現在開始。 –