多个列的聚合

2024-04-23 14:56:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我在数据帧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”的行。他们的数目应该加起来。但是,列区域不需要包含在最终的数据帧中。我尝试了以下方法:

df.groupby(['VALUE'])['COUNT'].sum()

如何让它返回所有列(区域除外)?你知道吗


Tags: 数据方法id区域dfvaluecountregion
1条回答
网友
1楼 · 发布于 2024-04-23 14:56:53

您可以告诉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是您将看到的关于熊猫imho的最有用的信息之一)

相关问题 更多 >