在 Pandas 中将缺失值的整数导出到 csv
·
问题:在 Pandas 中将缺失值的整数导出到 csv
将 Pandas DataFrame 保存到 csv 时,一些整数会转换为浮点数。它发生在一列浮点数缺失值的情况下(np.nan
)。
有没有简单的方法来避免它? (尤其是以自动方式 - 我经常处理各种数据类型的许多列。)
例如
import pandas as pd
import numpy as np
df = pd.DataFrame([[1,2],[3,np.nan],[5,6]],
columns=["a","b"],
index=["i_1","i_2","i_3"])
df.to_csv("file.csv")
产量
,a,b
i_1,1,2.0
i_2,3,
i_3,5,6.0
我想得到的是
,a,b
i_1,1,2
i_2,3,
i_3,5,6
编辑:我完全了解支持整数 NA - Pandas Caveats 和 Gotchas。问题是什么是一个很好的解决方法(特别是如果有许多其他类型的列并且我事先不知道哪些“整数”列有缺失值)。
解答
在 to_csv 函数中使用float_format = '%.12g'
为我解决了类似的问题。它保留最多 12 位有效数字的合法浮点数的小数,但对于因 NaN 的存在而被迫浮点数的整数则丢弃它们:
In [4]: df
Out[4]:
a b
i_1 1 2.0
i_2 3 NaN
i_3 5.9 6.0
In [5]: df.to_csv('file.csv', float_format = '%.12g')
输出是:
, a, b
i_1, 1, 2
i_2, 3,
i_3, 5.9, 6
更多推荐
目录
所有评论(0)