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

基于条件创建新列:Python DataFrame长表转宽表方法咨询

Python pandas长表转宽表解决方案

这是典型的长表转宽表需求,你可以用pandas内置的pivot方法直接实现,以下是可直接运行的完整代码:

import pandas as pd

# 构造示例原始DataFrame,你有原始df的话可以直接跳过这部分
raw_data = {
    "id": ["A", "A", "A", "B", "B", "B"],
    "Date": ["2018-01-01", "2018-02-01", "2018-03-01", "2018-01-01", "2018-02-01", "2018-03-01"],
    "wages": [100, 200, 100, 200, 100, 200]
}
df = pd.DataFrame(raw_data)

# 核心转换逻辑
wide_df = df.pivot(
    index="id",  # 保留为行的列
    columns="Date",  # 要转为新列名的列
    values="wages"  # 填充到新单元格的取值列
).reset_index()  # 将id从索引转为普通列

# 移除列名上方的默认名称标记,和你需要的输出结构完全对齐
wide_df.columns.name = None

如果你的原始数据中存在相同id+相同Date对应多条工资记录的情况,可以改用pivot_table方法做聚合转换,示例代码如下:

# aggfunc可以指定sum/mean等聚合函数,根据你的需求调整即可
wide_df = df.pivot_table(
    index="id",
    columns="Date",
    values="wages",
    aggfunc="sum"
).reset_index()
wide_df.columns.name = None

内容的提问来源于stack exchange,提问作者Shirley Michelle Redroban

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:15:03