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

如何重塑DataFrame:将多行日期与结果按索引聚合展开为多列

实现方案

你可以通过分组打标+宽表转换的方式完成需求,适配不同index对应不同记录条数的场景,示例代码如下:

import pandas as pd

# 假设你的原始DataFrame变量名为df
# 1. 先把日期列转为时间格式按日期升序排序,避免字符串排序逻辑出错
df['date'] = pd.to_datetime(df['date'], format='%d/%m/%Y')
df = df.sort_values(by=['index', 'date']).reset_index(drop=True)

# 2. 给每个index下的记录生成序号
df['day_seq'] = df.groupby('index').cumcount() + 1

# 3. 长表转宽表
df_wide = df.pivot(index='index', columns='day_seq', values=['date', 'result'])

# 4. 格式化列名
df_wide.columns = [f'date_{seq}' if col == 'date' else f'result_day_{seq}' for col, seq in df_wide.columns]

# 5. 恢复日期的原字符串格式,空值填充为NA
for date_col in [c for c in df_wide.columns if c.startswith('date_')]:
    df_wide[date_col] = df_wide[date_col].dt.strftime('%d/%m/%Y')
df_wide = df_wide.reset_index().fillna('NA')

执行完上述代码后df_wide就是你需要的结果格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:39:01