Python实现Excel数据集行列转换生成CSV文件的技术求助
Pandas 行列转换:将Item转为列标题、Date作为首列
你要实现的是长格式数据转宽格式,用Pandas的pivot()方法就能直接完成,不需要额外的groupby操作,具体步骤如下:
1. 核心转换代码
import pandas as pd # 读取Excel数据 Items = pd.read_excel('items_dataset.xlsx') # 执行行列转换:Date作为行索引,Item作为列,value填充对应单元格 pivoted_df = Items.pivot(index='Date', columns='Item', values='value').reset_index() # 移除自动生成的列层级名称 pivoted_df.columns.name = None # 保存为CSV文件 pivoted_df.to_csv('transformed_items.csv', index=False)
2. 转换后结果示例
生成的CSV文件内容如下:
Date,All items,Apples 2021-04,100.0,100.0 2021-05,100.2,100.1 2021-06,99.7,100.3
关键细节说明
pivot(index='Date', columns='Item', values='value'):直接映射行、列、值的对应关系,你的数据中每个Date+Item组合唯一,不会出现聚合冲突;reset_index():将Date从索引列转为普通列,满足你"第一列为Date"的需求;columns.name = None:清除Pivot自动添加的列层级标签,避免列头出现多余的"Item"字样。
如果你的数据存在同一个Date+Item对应多个value的情况,可以改用pivot_table()指定聚合逻辑,比如取平均值:
pivoted_df = Items.pivot_table(index='Date', columns='Item', values='value', aggfunc='mean').reset_index()
内容的提问来源于stack exchange,提问作者user12925132
相关产品推荐
相关产品推荐

