首页 > 解决方案 > 在 Pandas 中通过 Dataframe 的多列进行分组和求和

问题描述

我有一个看起来像这样的数据框:

YEAR |  REGION  |  POWER  |
2009 |   West   |  1.66   |
2009 |   West   |  1.77   |
2009 |   East   |  10.6   |
2009 |   East   |  8.7    |
2010 |   West   |  11.9   |
2010 |   North  |  14.8  |
2010 |   North  |  4.6    |
2010 |   West   |  3.0    |
2011 |   East   |  7.0    |
2011 |   East   |  9.66   |

我想对按YEARREGION分组的POWER的数值求和,以便得到类似的结果:

YEAR |  REGION  |  POWER  |
2009 |   West   |  3.43   |
2009 |   East   |  19.3   |
2010 |   West   |  11.9   |
2010 |   North  |  19.4   |
2010 |   West   |  3.0    |
2011 |   East   |  16.66  |

我试过了:

df.groupby(['YEAR', 'REGION'])['POWER'].sum()

但是我得到了一系列与 POWER 中的值并排而不是相加的序列。

谁能帮忙做这个手术?

标签: pythonpython-3.xpandasdataframe

解决方案


sum在上运行groupby,然后reset_index()将其展平。像这样:

df.groupby(['YEAR', 'REGION']).sum().reset_index()

#    YEAR REGION  POWER
# 0  2009   East  19.30
# 1  2009   West   3.43
# 2  2010  North  19.40
# 3  2010   West  14.90
# 4  2011   East  16.66

推荐阅读