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

Python中如何根据列值将表格重组为多列结构?

解决方法:将长格式数据转为宽格式(透视表)

你需要的是数据透视操作,pd.get_dummies是用来生成独热编码的,只会输出0/1标记类别是否存在,无法填充对应的value值,所以不适用这个场景。正确的做法是用pandas的pivot或pivot_table方法:

核心实现代码

假设你的原始DataFrame名为df,直接使用pivot方法完成转换:

import pandas as pd

# 执行透视:以row_index为行,new_column的取值为列,填充对应的value
pivoted_df = df.pivot(
    index='row_index',
    columns='new_column',
    values='value'
).reset_index()

# 移除列索引的名称(可选,让结果更整洁)
pivoted_df.columns.name = None

处理重复值场景

如果同一个row_index和new_column的组合存在多个value,pivot会抛出错误。这时候改用pivot_table,指定聚合函数来处理重复值:

# 示例:取重复组合中的第一个值,也可以用sum/mean等聚合方式
pivoted_df = df.pivot_table(
    index='row_index',
    columns='new_column',
    values='value',
    aggfunc='first'  # 可替换为'sum'/'mean'等
).reset_index()
pivoted_df.columns.name = None

效果示例

原始数据:

row_indexvaluenew_column
1手机DeviceType
1电商Business
2电脑DeviceType
2教育Business

转换后结果:

row_indexDeviceTypeBusiness
1手机电商
2电脑教育

内容的提问来源于stack exchange,提问作者Anmol Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:02:09