如何对DataFrame中按州分类的索引序列实现按州分组求和
解决方法
你的DataFrame采用了多级索引(MultiIndex)结构,第一级索引为州名,第二级为区间序号,按州汇总所有数值总和可以直接通过指定groupby的索引层级实现:
- 若第一级索引无自定义名称,按索引层级顺序指定
level=0分组求和即可:
# 单值列直接求和 state_total = s.groupby(level=0).sum() # 多列时指定对应列求和,比如要统计的列名为count state_total = s.groupby(level=0)['count'].sum()
- 若第一级索引已自定义名称(比如命名为
state),可以直接用索引名分组,可读性更高:
state_total = s.groupby(level='state').sum()
示例验证
你可以用以下测试代码验证效果:
import pandas as pd import numpy as np # 构造和你场景一致的测试数据 index = [ ['MD']*11 + ['NJ']*11, list(range(11))*2 ] # 生成22个1-10的随机值作为测试数值 s = pd.Series(np.random.randint(1,10,22), index=index) # 按州求和 res = s.groupby(level=0).sum() print(res)
运行后输出结果即为每个州对应的所有区间数值总和,和你给出的示例需求完全匹配。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

