经常用表格工具的同学肯定都遇到过一个存在已久的坑:使用Excel,WPS等处理身份证、银行卡等长数字都会被自动转换成科学计数法显示,然而我们并不需要它去做这个转换!
CSV原数据
如图所示,这是我生成的一个CSV原始数据。
Excel打开
WPS打开
Numbers打开
貌似成功了,但是Numbers只能处理65535行数据(255*257),所以面对“大数据”还是束手无策。
numbers应该是把CSV里所有的数据都当成字符串处理,而其它表格软件都做了多余的事。
下面带大家来解决这个问题
Program A
step1
Excel打开CSV文件,选择数据>>分列(或者分栏)进入下图页面。
step2
step3
over
全部都被转换成文本格式且加上了文本格式的标记。
但是这样操作会不会麻烦了点,有没有更简单的?
有。
Program B
step1
右键单击列名>>选中设置单元格格式
step2
在自定义格式种输入空格和零 >> “ 0”
Excel3 step2.png
over
达到了效果,但步骤还是不够简单。
Program C
step1
选择开始 >>常规
step2
over
还是当成数字处理,但是换了种格式。
以上方法都只能说基本解决了问题,但是并没有完全解决。
细心的同学会发现,我的CSV里的第22、23、24行的数字第一位都是“0”,以上方法都默认去掉了第一位的“0”。如果并不影响使用,那就没什么问题,但是这个数据失去了准确性。
Program D (完美解决方案)
step1
为了Excel打开的时候能还原数据,我用代码摸索一番。
这时候会Python与不会Python的差距就体现出来了(手动滑稽)。
其实只需要3行代码。
import pandas as pd
f_csv = pd.read_csv('demo.csv', dtype=str) #如果不指定dtype这个参数,有些环境下不能成功。
f_csv.to_excel('demo2.xlsx', sheet_name='data')
不过运行的时间比较长,如果数据量较大,代码执行个几分钟也是正常的。
over
数字都被标记为字符串格式,所有数据都完整的显示出来了。
微信公众号:爬虫 (一周一技,分享简单实用的IT技能)
网友评论