繁体   English   中英

Pandas - read_csv 科学计数法大数

[英]Pandas - read_csv scientific notation large number

我正在尝试使用 pandas 读取 csv 文件,该文件有一些科学记数法行。

当它读取值时,它没有捕获真正的底层数字。 当我重新利用数据时,真正的价值就会丢失。

df = pd.read_csv('0_IDI_Submitter_out.csv')

我试图保留的基本真实值如下:

      INPUT: Extra 1
0     8921107
1     56300839420000
2     56207557000000

但是,pandas 将其读取为

 INPUT: Extra 1
0     8921107
1     5.63008E+13
2     5.62076E+13

如果我尝试编写新的 csv 或使用此数据,则值显示为:

 INPUT: Extra 1
0     8921107
1     56300800000000
2     56207600000000

如何让 pandas 读取真实数字而不是导致其转换错误的科学计数法?

似乎无法重现您的问题,但也许这会起作用?

df = pd.read_csv('0_IDI_Submitter_out.csv', dtype={'INPUT: Extra 1':np.object_})

另外,检查您的 dataframe 的数据类型:

result = df.dtypes
print(result)

问题似乎是在 Excel 中打开 CSV 文件,其中包含大数字或字符串,如产品代码、SKU、UPC 等,会自动转换为科学计数法。 完成此操作后,您必须手动将 go 转换为 Excel 并重新格式化,但尝试从 Pandas 执行此操作似乎不可能并且数据完整性丢失。

但是,如果我从不打开 Excel 中的文件并纯粹通过 Pandas 处理它,那么一切都很好。 同样,如果您纯粹在 Excel 中工作,您也很好。

我的最终结论是,在处理大数字或显示为大数字(如产品代码或 UPC)的字符串时,最好不要将 pandas 与 Excel 混合使用。 作为替代方案,我刚刚开始将所有数据帧保存为泡菜文件,而不是 csv。

希望对将来的任何人有所帮助。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM