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将其作为文本读取。那么,你就得不到科学符号了。