Bo *_*Wan 1 python numpy pandas
所以基本上数据框中的列有 Nan 和 float,我想使用 apply 来计算列中的值。如果值为nan,则返回else,计算。
但看起来x is np.nanlambda 并没有给我正确的答案。这是一个例子
In[6]: df = pd.DataFrame({'A': [np.nan, np.nan, np.nan]})
In[7]: df.A.apply(lambda x: x is np.nan)
Out[7]:
0 False
1 False
2 False
Run Code Online (Sandbox Code Playgroud)
有谁知道原因吗?
首先要事。为了得到你想要的:
df.A.isnull()
Run Code Online (Sandbox Code Playgroud)
其次,np.nan没有可比性。设计上np.nan == np.nan是错误的。
为了解决这个问题,pandas 和 numpy 有特定的函数来测试它是否为空。你可以:
df.A.apply(pd.isnull)
Run Code Online (Sandbox Code Playgroud)
但这与以下内容是一样的:
df.A.isnull()
Run Code Online (Sandbox Code Playgroud)
就是我上面提到的。
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |