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

pandas聚合操作如何添加未参与聚合的列并重命名结果列

解决方案

你可以通过把currency加入分组维度,同时用agg方法指定聚合列名的方式解决两个问题,参考代码如下:

# 转换日期格式
price_history['date'] = pd.to_datetime(price_history['date'])

# 分组聚合生成目标结构
result = price_history.groupby(
    # 同时按币种、年月两个维度分组
    ['currency', price_history['date'].dt.strftime('%Y-%B')]
)['close'].agg(
    # 给聚合后的收盘价均值指定列名,可按需修改名称
    monthly_close_avg='mean'
).reset_index() # 将分组索引转为普通DataFrame列

代码说明:

  • 把currency加入groupby的分组键,聚合后会自动保留该列,符合多币种月度统计的业务逻辑
  • agg(monthly_close_avg='mean')的写法可以直接自定义聚合结果的列名,后续关联其他数据集时可以直接用该列名取值
  • 末尾的reset_index()会把分组用的currency和年月两个索引都转为普通列,最终输出的result就是包含currency、date(即你需要的年月格式值)、monthly_close_avg三列的标准DataFrame

如果想要避免和原始日期列重名,还可以在reset_index()后添加重命名操作,比如:

result = result.rename(columns={'date': 'year_month'})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 02:33:02