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

Python pandas如何将唯一行值转换为关联对应数据的新列

数据转换需求实现方案(Pandas)

核心实现代码

import pandas as pd

# 构造示例数据,实际使用时可替换为你读取数据的逻辑,比如pd.read_csv("your_file.csv")
data = [
    ['a', '2021-12-11', 759, 46],
    ['a', '2021-13-11', 803, 30],
    ['b', '2021-12-11', 46, 10],
    ['b', '2021-13-11', 86, 7]
]
df = pd.DataFrame(data, columns=['Col1', 'Col2', 'Col3', 'Col4'])

# 1. 透视转换得到多级列名结果
df_pivot = df.pivot(index='Col2', columns='Col1', values=['Col3', 'Col4'])

# 2. 调整列名格式,按要求拼接前缀和原列名
df_pivot.columns = [f'{col[1]}-{col[0]}' for col in df_pivot.columns]

# 3. 重置索引把Col2恢复为普通列
df_result = df_pivot.reset_index()

# 可选:调整列顺序和目标格式完全对齐
df_result = df_result[['Col2', 'a-Col3', 'a-Col4', 'b-Col3', 'b-Col4']]

print(df_result)

结果验证

运行后输出结果完全匹配需求:

Col2  a-Col3  a-Col4  b-Col3  b-Col4
0  2021-12-11     759      46      46      10
1  2021-13-11     803      30      86       7

特殊场景适配

如果你的原始数据中存在重复的Col1+Col2组合,把pivot替换为pivot_table指定聚合规则即可,示例:

# 重复值按求和聚合,可根据需求替换为'mean'/'max'等其他聚合函数
df_pivot = df.pivot_table(index='Col2', columns='Col1', values=['Col3', 'Col4'], aggfunc='sum')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:06:07