为何设置index_col=0会使首列标题下移一行?如何解决?
解决pandas设置index_col=0后索引列标题与数据不对齐的问题
你的问题根源是CSV文件的字段带有前导空格——表头 Reg. No和每行第一个数据(如 234)都存在开头空格。当设置index_col=0时,pandas保留了索引名的空格,但自动处理了索引值的空格,最终导致显示时出现错位。
方法一:读取时自动跳过前导空格
直接在read_csv中添加skipinitialspace=True参数,该参数会跳过所有字段开头的空格(包括表头和数据),一步到位解决问题:
import pandas as pd df = pd.read_csv('data.csv', index_col=0, skipinitialspace=True) print(df)
执行后输出会正常对齐:
Score Reg. No 234 78 467 98 876 23 675 49 123 56
方法二:读取后手动清理索引名
如果不想修改读取参数,也可以在读取完成后,手动去除索引名的前导空格:
import pandas as pd df = pd.read_csv('data.csv', index_col=0) df.index.name = df.index.name.strip() # 清理索引名的空格 print(df)
两种方法都能保证index_col=0的设置满足后续数据处理需求,同时解决显示对齐问题。
内容的提问来源于stack exchange,提问作者Seshadri R
相关产品推荐
相关产品推荐

