使用Python pandas重排CSV文件实现长表转宽表的问题咨询
实现CSV长表转宽表的解决方案
你需要的长表转宽表操作可以直接用pandas内置的pivot_table方法实现,不需要手动拆分过滤每列数据,完整实现代码如下:
import pandas as pd # 1. 读取原始CSV数据 df = pd.read_csv('MatNavi.csv', header=0) # 2. 透视转换为宽表,缺失值自动填充0 result_df = pd.pivot_table( df, index="Element", # 行维度为元素名称 columns="Temperature", # 列维度为温度值 values="Fy", # 单元格填充对应Fy值 fill_value=0 # 元素无对应温度数据时填充0 ).reset_index() # 将索引列Element转为普通列,匹配你需要的输出结构 # 可选:对温度列按数值大小排序 temp_columns = result_df.columns[1:].astype(int) sorted_columns = ["Element"] + sorted(temp_columns) result_df = result_df.reindex(sorted_columns, axis=1) # 3. 导出结果到新CSV result_df.to_csv("wide_format_result.csv", index=False)
原有代码问题说明
你之前编写的代码中存在未定义变量Mn的问题,且仅过滤了Element A的单组数据,无法批量处理所有元素的转换逻辑,使用内置透视方法可以自动完成所有元素、温度的分组匹配,不需要手动遍历过滤。
内容的提问来源于stack exchange,提问作者Petewil
相关产品推荐
相关产品推荐

