pandas(一):read_csv解决第一列Unnamed问题

先直接给答案: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])

5、指定原始列的数据类型

假如第一列是身份证号、股票代码或者卡号,但直接读取会变成数字类型,导致数字不完成,该怎么处理。pd提供了一个数据类型参数叫dtype,我们可以指定某列(假如身份证号所在列名为code)为字符型即可:

dtype = {“code”: str}  # 其中code为列名
configdata = pd.read_csv(savepath, index_col=0, dtype=dtype)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trisyp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值