You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas按国家聚合多年份列求和问题求助

解决按国家聚合多年份列的问题

针对你的需求,不用手动逐个写年份列名,用以下方法自动处理所有年份列:

假设你的数据结构:

  • Country列是国家名称(包含"Argentina")
  • 年份列都是F+四位数字格式(比如F2009、F2010...F2018)

代码解决方案:

# 自动筛选所有年份列(匹配F开头+四位数字的格式)
year_cols = df.columns[df.columns.str.match(r'F\d{4}')]

# 按国家分组,对所有年份列求和,得到每个国家的总合
country_totals = df.groupby('Country')[year_cols].sum()

# 提取Argentina的总合,转成单列DataFrame
argentina_total_df = country_totals.loc[['Argentina']].T.rename(columns={'Argentina': 'Argentina_Total'})

代码说明:

  • str.match(r'F\d{4}'):用正则表达式精准匹配所有年份列,不管有多少个年份都能自动识别
  • groupby('Country')[year_cols].sum():按国家分组后,对每个国家的所有年份列值求和
  • loc[['Argentina']].T:把Argentina的行数据转成列,得到你要的仅包含Argentina总合的单列

如果你的年份列命名规则不同(比如不是F开头),可以调整正则表达式,比如年份列是Year2009这种,就改成r'Year\d{4}'。

内容的提问来源于stack exchange,提问作者Gexplode97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:37:45