总结和得到不同的数量Python熊猫

时间:2018-01-19 11:02:29

标签: python pandas

我有一个如下所示的数据框:

ID | Value
1     100
1     300
2     200
3     300
4     400

基本上我正在努力实现这个目标:

ID Distinct Count | Total Value
4                  1300

所以你看到ID的总不同计数是4而不是5,因为1重复两次。

我在python中做到了这一点:

df = df.aggregate({'Id':lambda x: x.nunique(), 'value': 'sum'});

但这给了我'DataFrame'对象没有属性'aggregate'

我做错了什么?

PS:我也做了但是它也不起作用

2 个答案:

答案 0 :(得分:1)

您使用旧版本的pandas,因为df.agg/aggregatev0.20的第一类函数。使用pip install --upgrade pandas升级。

v0.20+回答)如果您使用此功能,则可以删除lambda

df.agg({'ID' : 'nunique', 'Value' : 'sum'}).to_frame().T

   ID  Value
0   4   1300

答案 1 :(得分:1)

您可以使用apply

df = df.apply({'ID':'nunique', 'Value': 'sum'}).to_frame().T
print (df)
   Value  ID
0   1300   4

如果使用较旧版本的熊猫:

df = pd.DataFrame([[df['ID'].nunique(), df['Value'].sum()]], 
                    columns=['ID Distinct Count','Total Value'])
print (df)


   ID Distinct Count  Total Value
0                  4         1300