我有一个问题,我编写的所有遗留代码都不再有效。
我让 pandas 读取一个 Excel 文件,它现在读取为 float64,而不是 int64。这是一个问题,因为我无法对不同的数据类型执行 .merge 或 .isin。我知道我可以使用 df.blah.astype(int),但重构起来很不方便,似乎没有必要。
我不确定是什么原因造成的。我正在开发 Windows 10、Python 3.5 和 Pandas 18.1 的新版本。所发生的变化只是 Windows 7 和 Pandas 18.0 的升级。
Pandas 有什么变化吗?我在发行说明中找不到任何更改。
感谢您的帮助!
最佳答案
我认为 int
值之间有问题的列中有一些 NaN
。所以 pandas
自动将 int
转换为 float
。
您可以通过 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
关于python - 如何强制 Pandas 将数字读取为 "int64"而不是 "float64",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37843053/