熊猫-read_csv科学计数法大量

时间:2019-09-23 17:00:06

标签: python pandas scientific-notation

我正在尝试读取带有科学计数法的带有熊猫的csv文件。

当读取值时,它没有捕获真实的基础数字。当我重新调整数据用途时,真实值会丢失。

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

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

      INPUT: Extra 1
0     8921107
1     56300839420000
2     56207557000000

但是,熊猫把它读为

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

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

 INPUT: Extra 1
0     8921107
1     56300800000000
2     56207600000000

我如何让熊猫读取真实数字,而不是引起其错误转换的科学计数法?

2 个答案:

答案 0 :(得分:1)

似乎无法重现您的问题,但这也许可以解决?

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

另外,检查数据框的dtypes:

result = df.dtypes
print(result)

答案 1 :(得分:0)

问题似乎是在Excel中打开一个CSV文件,其中包含大量数字或显示为大量数字的字符串(例如产品代码,SKU,UPC等)会自动转换为科学计数法。完成此操作后,您将必须手动进入Excel并重新设置格式,但尝试从Pandas进行操作似乎不可行,并且数据完整性也会丢失。

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

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

希望对以后的所有人有帮助。

谢谢