dataframe读取csv,精度丢失处理方法,必看!!!

问题描述:
在处理csv数据文件时,我需要的是完整的整型数值,如下图
在这里插入图片描述
某一列的值用notepad++打开显示为18位的整型数值,但是用excel打开会以科学计数法形式显示,如果我们直接pd.read_csv()不做任何处理的话,显示的也是以科学计数法显示,并且数据精度丢失。如下图
在这里插入图片描述
查了很多资料,有以下方法,比如
方法一:

df['列名']=df['列名'].astype('int64')

结果如下
在这里插入图片描述
确实变成整型了,但是最后一位还是丢失了。

方法二:

pd.set_option('display.float_format',lambda x : '%.3f' % x)

这种方法跟方法一的结果是一样的,虽然是整型,但是数据精度被丢失,所以放弃。

百思不得其解的时候,突然灵机一动
在这里插入图片描述

太不容易了,(其实很多知识,都像是隔着一张纸,其实一捅破就豁然开朗,手到擒来。

最后其实只需在读取csv的时候,只需把该列指定为str数据类型,然后再转化成int64类型

data=pd.read_csv(path,encoding='gbk',dtype=str,header=None)
......
data['列名']=Original_data['列名'].astype('int64')

然后就得到了自己想要的结果,如下图,也就是文章开头自己想要的结果。在这里插入图片描述
与大家共勉之,希望能帮助到大家。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值