Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将通用格式转换为数字格式_Python_Pandas_Export To Csv - Fatal编程技术网

Python 将通用格式转换为数字格式

Python 将通用格式转换为数字格式,python,pandas,export-to-csv,Python,Pandas,Export To Csv,如何在Python中导出为_csv时将此数字从常规格式转换为数字格式默认情况下,小于1e16的数字在Pandas转换为_csv()期间会完整输出,但以科学符号表示为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) 产生 123000000000


如何在Python中导出为_csv时将此数字从常规格式转换为数字格式默认情况下,小于1e16的数字在Pandas
转换为_csv()
期间会完整输出,但以科学符号表示为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
您可以使用参数控制格式,该参数在输出前将其转换为字符串:

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

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

如上所述,使用
float_格式
将浮点数转换为字符串,因此,如果您想保证它们在输出中将被视为字符串,您可以更改并强制它们以
quoting=csv.QUOTE_NONNUMERIC
的引号输出,因此:

import csv
df.to_csv('test.csv', index=False, header=False, float_format='%.0f', quoting=csv.QUOTE_NONNUMERIC)
现在输出为:

"1230000000000000"
"12300000000000000"
"1230000000000000"
"12300000000000000"

这与Python无关,这是您的excel数字格式。我有客户抱怨这个问题:)。超出我的控制范围--这是excel的限制。如果是.csv文件,请不要打开并重新保存。始终将其导入excel,而不是直接打开。否则,您将面临某些数字被截断的风险。如果是电话号码字段,我建议在末尾添加一个
+
或其他内容,以强制excel将其作为文本读取。那么,你就得不到科学符号了。