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

如何在Pandas DataFrame中将现有列名替换为下方行作为新列名

实现方案(基于Pandas)

假设你的原始DataFrame包含分组标识列(如用户/产品ID)、日期列、目标数值列,可以通过以下步骤完成转换:

1. 生成月份标识列

从日期列中提取月份,生成month1/month2格式的列:

import pandas as pd

# 替换成你的DataFrame名和日期列名
df['month'] = 'month' + df['date_column'].dt.month.astype(str)

2. 长表转宽表

根据数据情况选择合适的转换方法:

  • 如果同一分组+月份无重复数据,用pivot:
# 替换成你的分组列名、数值列名
result_df = df.pivot(
    index='group_column',
    columns='month',
    values='value_column'
).reset_index()
  • 如果存在重复数据(同一分组+月份有多条记录),用pivot_table指定聚合方式(比如求和、取均值):
result_df = df.pivot_table(
    index='group_column',
    columns='month',
    values='value_column',
    aggfunc='sum'  # 可替换为'mean'/'max'等
).reset_index()

3. 调整列顺序(可选)

确保月份列按month1到month5排序:

target_cols = ['group_column'] + [f'month{i}' for i in range(1, 6)]
result_df = result_df[target_cols]

补充:处理空值

如果部分月份没有数据,结果中会出现NaN,可以用fillna替换为指定值(比如0):

result_df = result_df.fillna(0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 23:20:31