熊猫组和记录分组值

时间:2016-10-07 06:20:04

标签: python pandas

我有以下数据集:

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

我能够使用pandasDataFrame.groupby计算值:' Code',as_index = False).agg(' count')

我想计算并同时在新列中记录值。我希望结果看起来像下面的例子

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

是否可以用熊猫来做?

1 个答案:

答案 0 :(得分: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]