将一般格式转换为数字格式

时间:2020-07-11 10:12:35

标签: python pandas export-to-csv

enter image description here

在Python中导出到_csv时如何将此数字从常规格式转换为数字格式

1 个答案:

答案 0 :(得分:0)

默认情况下,在熊猫to_csv()期间会完整输出小于1e16的数字,但是科学上记为1e16。

import pandas as pd

df = pd.DataFrame([1230000000000000, 12300000000000000, 1.23e+15, 1.23e+16])
df.to_csv('test.csv', index=False, header=False)

生产

1230000000000000.0
1.23e+16
1230000000000000.0
1.23e+16

您可以使用float_format参数控制格式,将其转换为输出之前的字符串:

df.to_csv('test.csv', index=False, header=False, float_format='%.0f')

输出:

1230000000000000
12300000000000000
1230000000000000
12300000000000000

但是,正如其他人在评论中指出的那样,您需要注意如何查看.csv文件,因为Excel会将其重新格式化以默认显示。您可以使用任何文本编辑器按原样检查.csv文件格式。

如上所述,使用float_format会将浮点数转换为字符串,因此,如果您想保证将浮点数在输出中视为字符串,则可以更改以使其强制用引号引起来,并用{ {1}},因此:

quoting=csv.QUOTE_NONNUMERIC

现在的输出是:

import csv
df.to_csv('test.csv', index=False, header=False, float_format='%.0f', quoting=csv.QUOTE_NONNUMERIC)