问题

在使用pandas的read_csv方法时,它默认会自动加上一列行号。

演示

test.csv内容如下:

姓名,年龄
小兔子昂,8
大兔子昂,13

test.py代码如下:

#引入pandas库,并改成pd方便使用,(打的字就少了)
import pandas as pd 

dataframe = pd.read_csv("test.csv")
print(dataframe)

运行结果如下:

     姓名  年龄
0  小兔子昂   8
1  大兔子昂  13

可以发现,多出了第一列,pandas自动加上了行号。

解决

给read_csv加上这么个参数,index_col=0

修改后的代码如下:

#引入pandas库,并改成pd方便使用,(打的字就少了)
import pandas as pd 

dataframe = pd.read_csv("test.csv",index_col=0)
print(dataframe)

运行结果

      年龄
姓名
小兔子昂   8
大兔子昂  13

可以看到行号已经去掉了。尽管表头错行了,但是输出到文件里是正常的。

其他

如果需要Excel打开,需要将csv文件另存为ANSI编码格式,不然会乱码。同时要给read_csv加上一个参数,encoding="gbk",这样python读取才不会出错。

如果想了解更多关于index_col参数的知识:
pandas read_csv 参数 index_col = None,0,False的区别