如何强制Pandas读取数字" int64"而不是" float64"

时间:2016-06-15 18:25:11

标签: python pandas numbers int nan

我遇到的问题是,我编写的所有遗留代码都不再有效。

我有pandas读取Excel文件,而不是读取为int64,它现在读取为float64。这是一个问题,因为我无法在不同的数据类型上执行.merge或.isin。我知道我可以使用df.blah.astype(int),但这对于重构来说非常不方便,而且似乎没有必要。

我不确定是什么造成的。我正在开发Windows 10,Python 3.5和Pandas 18.1的新版本。所有改变都是从Windows 7和Pandas 18.0升级。

熊猫有什么变化吗?我发现发行说明没有任何变化。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我认为在int值之间的问题列中有一些NaN。因此pandas会自动将int转换为float

Na type promotions

您可以isnull使用boolean indexing检查值:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[1,2,np.nan],
                   'B':[4,5,6]})

print (df)
     A  B
0  1.0  4
1  2.0  5
2  NaN  6

print (df[df.A.isnull()])
    A  B
2 NaN  6