Python pandas按index列排序CSV文件触发找不到列的KeyError问题
报错原因定位
- 待处理的CSV文件以分号(
;)作为列分隔符,但pandasread_csv方法默认按照逗号(,)拆分列,直接读取会把整行表头index;name;result识别为单个列名,无法拆分出独立的index列,因此触发KeyError。 - 原代码的排序参数
ascending=False为降序规则,和你预期的index值从1到7升序排列的输出要求不匹配。
修正后的可运行代码
import pandas as pd # 读取阶段指定分号为列分隔符,正确拆分出三列字段 df = pd.read_csv("file.csv", sep=';') # 按index列做升序排序 sorted_df = df.sort_values(by='index', ascending=True) # 写出阶段同步使用分号分隔,匹配原文件的CSV格式 sorted_df.to_csv("output.csv", index=False, sep=';')
运行效果
代码运行后,输出的output.csv会完全匹配预期的排序结果:按index值从小到大排列所有行,不会再出现KeyError报错。
内容的提问来源于stack exchange,提问作者learn_to_code
相关产品推荐
相关产品推荐

