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

pandas按date分组后基于I1、I2值组合生成新列的通用实现方法

实现方案

你可以直接用pandas内置的pivot/pivot_table方法完成转换,代码简洁且通用,兼容不同的I1、I2取值组合场景。

基础代码示例

假设原始DataFrame命名为df,实现代码如下:

# 生成透视表,以date为行索引,I1+I2为列维度,取F1、F2的值
result = df.pivot(index='date', columns=['I1', 'I2'], values=['F1', 'F2'])
# 把多级列名拼接成目标格式的单级列名
result.columns = result.columns.map(lambda col: f"{col[0]}-{col[1]}-{col[2]}")
# 将date从索引恢复为普通列
result = result.reset_index()

兼容重复数据的通用版本

如果存在同一个date下I1、I2组合重复的情况,可以改用pivot_table指定聚合规则,避免报错:

result = df.pivot_table(
    index='date',
    columns=['I1', 'I2'],
    values=['F1', 'F2'],
    aggfunc='first'  # 可根据需求替换为sum、mean等聚合函数
)
result.columns = result.columns.map(lambda col: f"{col[0]}-{col[1]}-{col[2]}")
result = result.reset_index()

运行后得到的result就是你需要的目标结构DataFrame,列顺序可以按需再调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:27:04