相关疑难解决方法(0)

如何过滤NaN(熊猫)?

我有一个pandas数据帧(df),我想做的事情如下:

newdf = df[(df.var1 == 'a') & (df.var2 == NaN)]
Run Code Online (Sandbox Code Playgroud)

我已经尝试用np.NaN,'NaN'或者'nan'等等替换NaN ,但没有任何评估为True.没有pd.NaN.

我可以df.fillna(np.nan)在评估上面的表达式之前使用但是感觉很乱,我想知道它是否会干扰其他依赖能够识别熊猫格式NaN的熊猫操作.

我觉得应该对这个问题有一个简单的答案,但不知怎的,它已经躲过了我.任何建议表示赞赏.谢谢.

python nan pandas

47
推荐指数
4
解决办法
7万
查看次数

numpy NaN并不总是被认可

这让我很困惑:

```
a=np.array([1,2,np.nan,3])    # an array with a nan
print(np.isnan(a)[2])         # it truly is a nan
print(a[2])                   # it quacks like a nan
print(np.nan is np.nan)       # nan's can be compared
print(a[2] is np.nan)         # But then, this isn't a nan after all!!??

>>> True
>>> nan
>>> True
>>> False
```
Run Code Online (Sandbox Code Playgroud)

我知道我们不允许比较nan的==,但is应该被允许吗?毕竟它在比较nan与自身时有效吗?

感谢您对此处发生的任何提示.

python numpy nan

5
推荐指数
2
解决办法
936
查看次数

Pandas Lambda功能与Nan支持

我正在尝试在Pandas中编写一个lambda函数,检查Col1是否为Nan,如果是,则使用另一列的数据.我无法获得正确编译/执行的代码(如下所示).

import pandas as pd
import numpy as np
df=pd.DataFrame({ 'Col1' : [1,2,3,np.NaN], 'Col2': [7, 8, 9, 10]})  
df2=df.apply(lambda x: x['Col2'] if x['Col1'].isnull() else x['Col1'], axis=1)
Run Code Online (Sandbox Code Playgroud)

有没有人对如何使用lambda函数编写这样的解决方案有任何好主意,或者我是否超出了lambda的能力?如果没有,你有其他解决方案吗?谢谢.

python lambda nan python-3.x pandas

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

nan ×3

python ×3

pandas ×2

lambda ×1

numpy ×1

python-3.x ×1