如何用Python编写代码求Pandas DataFrame指定年份的产量列总和
Pandas 单年份产量求和实现方案
是否需要使用groupby函数
不需要。你仅需要统计单个指定年份(2014)的产量总和,直接通过布尔索引筛选对应行后对产量列求和即可,代码更简洁,执行效率也更高。groupby更适合需要统计每一个年份对应总产量的场景。
具体代码实现
假设你的DataFrame变量名为df,对应列名分别为年份、产量:
方案1:直接筛选后求和(推荐)
# 筛选年份为2014的所有行,对产量列求和 sum_2014 = df[df['年份'] == 2014]['产量'].sum()
代码逻辑说明:
df['年份'] == 2014会生成布尔序列,匹配所有年份为2014的行- 用该布尔序列索引df即可得到2014年的所有行数据
- 提取
产量列后调用sum()方法即可得到2014年总产量
方案2:groupby实现(仅作参考,单年份统计不推荐)
如果你同时需要统计所有年份各自的总产量,也可以通过groupby实现,再提取2014年的结果:
# 按年份分组,统计每个年份的产量总和 year_prod_total = df.groupby('年份')['产量'].sum() # 提取2014年的产量总和,不存在2014年数据时默认返回0 sum_2014 = year_prod_total.get(2014, 0)
注意事项
- 确保
年份列的数据类型和匹配值类型一致,若年份为字符串格式,需将判断条件改为df['年份'] == '2014' sum()函数默认开启skipna=True参数会自动忽略空值,如果你需要把空值计入统计,可手动传入参数skipna=False
内容的提问来源于stack exchange,提问作者Curious
相关产品推荐
相关产品推荐

