先直接给答案:configdata = pd.read_csv(savepath, encoding='utf-8', index_col=0)。
然后我们展开来说明:
首先下面这个图片是原始csv数据
1、第一列问题
上述图片可以看到,因为csv文件自带第一列序号,如果我们直接用pd.read_csv读取就会将第一列的序号也认为是一列,然后这列没有列名,所以就默认赋了一个Unnamed。所以就得到如下图片:
解决办法很简单,就是指定第一列为index(即设置参数index_col=0,其默认值是None),具体实现如下:
configdata = pd.read_csv(savepath, index_col=0)。
2、编码问题
这里可以注意到我把encoding参数去掉了,因为默认编码就是utf8的,如果我换成gbk会咋样?看看结果:
这样就报错了,会出现UnicodeDecodeError这个错误,告诉你gbk codec can’t decode。所以保存的文件编码格式也要注意。
3、列名问题
接着再讲讲,假如第一行不是列名(即原数据没有保存列名),直接是数值,该怎么处理。解决方法就是指定无表头就行(即设置header=None,其默认值是infer):
configdata = pd.read_csv(savepath, header=None, index_col=0)
可以看到,默认给的列名是数字,如果想直接给定也行,指定参数names即可:
4、第一行问题
假如第一行列名我不想要(即不想读取),该怎么处理。pd提供了一个参数叫skiprows,你只要设置你不想读取的行号即可:
configdata = pd.read_csv(savepath, index_col=0, skiprows=[0])