我编写了一个脚本,该脚本接受csv文件作为输入,使用pandas操作数据,并创建另一个csv文件。
一切正常,但是pandas默认情况下会将整数值转换为double。例如:
在csv之前:
5f684ee8-7398-914d-9d87-7b44c37ef081,France,44,72000,No,isBool("true")
在csv中执行以下操作后:
E84E685F-9873-4D91-9D87-7B44C37EF081,France,44.0,72000.0,No,True
这里44和72000更改为44.0和72000.0
我知道如何在dataframe中使用apply()将它们转换为int,但是这个脚本将是通用的,我希望首先配置pandas。
基本上,如果.0不是浮点数,我希望熊猫不会放入它。
谢谢。
发布于 2017-02-20 21:37:49
正如评论中所说,pandas中的一些操作可以更改dtype。有关示例this page,请参见。
解决方案可以是:
df.to_csv(float_format="%.0f")
将每个(false)浮点数舍入为整数格式。
举个例子:
In [355]: pd.DataFrame(columns=list(range(6)),
data=[['E84E685F-9873-4D91-9D87-7B44C37EF081', 'France', 44.0, 72000, 'No', True]]
).to_csv(float_format='%.f')
Out[355]: ',0,1,2,3,4,5\n0,E84E685F-9873-4D91-9D87-7B44C37EF081,France,44,72000,No,True\n'
https://stackoverflow.com/questions/42344679
复制相似问题