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

如何用Pandas自动将含属性名/值的CSV转换为宽格式?

Pandas长格式转宽格式(无需手动循环)

完全不用自己写逐行循环的代码,Pandas内置了专门的方法可以快速实现长格式到宽格式的转换,效率比手动循环高得多,尤其是数据量较大的时候。

具体步骤:

  • 第一步:直接用pd.read_csv()读取CSV文件到DataFrame,不需要手动把CSV转字典再转DataFrame,这一步Pandas已经帮你做好了。
  • 第二步:用pivot()或pivot_table()方法完成格式转换:
    • 如果你的数据中,每个行ID+属性名的组合是唯一的,用pivot()就足够了
    • 如果存在重复的行ID+属性名组合,需要用pivot_table()指定聚合方式(比如取第一个值、求和、求均值等)

示例代码(假设CSV的三列名为row_id、attr_name、attr_value):

import pandas as pd

# 读取长格式CSV
df_long = pd.read_csv('your_data.csv')

# 转换为宽格式(无重复组合时用)
df_wide = df_long.pivot(
    index='row_id',
    columns='attr_name',
    values='attr_value'
).reset_index()

# 若存在重复组合,用pivot_table指定聚合方式,比如取第一个出现的值
# df_wide = df_long.pivot_table(
#     index='row_id',
#     columns='attr_name',
#     values='attr_value',
#     aggfunc='first'
# ).reset_index()

转换完成后,df_wide就是你想要的宽格式数据:以row_id为普通列(或者保留为索引),每个attr_name作为单独的列,对应单元格是attr_value的值。

内容的提问来源于stack exchange,提问作者Zen Zac

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:24:32