我在dataframe df中有以下数据:
VALUE COUNT REGION ID
235 15 LP 139
355 59 LP 102
421 8 LP 127
427 227 LP 90
439 4 LP 133
235 45 UP 139
355 231 UP 102
421 756 UP 127
427 23 UP 90
439 76 UP 133
我想组合数据框,以便合并具有公共'VALUE'的行。他们的数量应该加起来。但是,列REGION不需要包含在最终数据帧中。我尝试了以下方法:
df.groupby(['VALUE'])['COUNT'].sum()
如何让它返回所有列(REGION除外)?
答案 0 :(得分:2)
您可以告诉aggregate
对多个列执行多项操作。
你没有提到你想要对ID
列做什么,所以我在这里采取第一个。无法求和的列通常会被静默删除,这种情况也是如此。
In [51]: df.groupby('VALUE').aggregate({'COUNT':np.sum, 'ID':lambda x:x.iloc[0]})
Out[51]:
COUNT ID
VALUE
235 60 139
355 290 102
421 764 127
427 250 90
439 80 133
(一般来说,groupby的docs是关于pandas imho的最有用的信息之一