pandas使用read_csv读取CSV文件时首行被识别为表头如何解决
问题原因
pandas的read_csv方法默认将CSV文件的第一行识别为表头(列名),你的CSV文件没有单独的表头行,所有行都是业务数据,因此第一行的Edan Daniele相关内容被误设为了列名。
解决方法
在调用read_csv时添加header=None参数,明确告知pandas该CSV没有表头,所有内容都按数据行读取,pandas会自动生成从0开始的整数作为列名。
修改后的代码如下:
import pandas as pd # 原代码中导入的datetime.time和os.sep没有实际使用,可以直接删除 df = pd.read_csv("Decathlon.csv", sep=";", header=None) print(df)
可选优化:自定义列名
如果你后续需要给每列设置有意义的列名,可以额外添加names参数指定列名列表,示例:
import pandas as pd col_names = ["姓名", "100米成绩", "跳远成绩", "铅球成绩", "跳高成绩", "400米成绩", "110米栏成绩", "铁饼成绩", "撑杆跳成绩", "标枪成绩", "1500米成绩"] df = pd.read_csv("Decathlon.csv", sep=";", header=None, names=col_names) print(df)
修改后运行代码,索引0对应的就是Edan Daniele的相关数据,符合预期。
内容的提问来源于stack exchange,提问作者2Pax
相关产品推荐
相关产品推荐

