如何基于动态条件对DataFrame行值按日期与州分组求和
需求说明
我有一个包含以下结构的DataFrame:
- 列包含:REF_DATE(年份)、State(州)、Gliders、Helicopters、Jet engines、Piston engines、Turbo-propellers
- 同一REF_DATE和State对应多行数据
需要按REF_DATE和State进行分组,分别计算上述各飞行器列的总和,最终每个REF_DATE下每个州仅保留一行数据。例如:当REF_DATE=2012时,若有23个州,则生成23条REF_DATE为2012的行数据。
预期逻辑可简化为:
若两行数据的REF_DATE和State均相同,则对Gliders、Helicopters等列分别求和
预期效果示例:每个年份-州组合对应一行,各飞行器列显示该组合下的累计总和。
解决方案
正如@MattPitkin所指出的,使用pandas的groupby方法即可实现需求,代码如下:
df_states = df_ap.groupby(['REF_DATE', 'State']).sum()
执行后效果:生成的DataFrame以REF_DATE和State为复合索引,各飞行器列展示对应分组的求和结果。
内容的提问来源于stack exchange,提问作者yaviens
相关产品推荐
相关产品推荐

