如何在熊猫系列中保存NaN



假设我有一个带有一些NaN的系列s

import numpy as np
import pandas as pd
s = pd.Series([1, 2, np.nan])
print(s)
0    1.0
1    2.0
2    NaN
dtype: float64

并且我想执行比较操作,但保留NaNs。例如,假设我想检查每个元素与2的相等性,生成:

0    False
1     True
2      NaN
dtype: object

但如果我执行s == 2,则NaN元素的求值结果为False:

print(s == 2)
0    False
1     True
2    False
dtype: bool

最好的方法是什么?

一种粗略的方法是对相等性检查输出进行第二次检查,并替换NaNs应为的任何行:

import numpy as np
import pandas as pd
s = pd.Series([1, 2, np.nan])
comp = s==2
comp[np.isnan(s)] = np.nan
print(comp)
0    False
1     True
2      NaN
dtype: object

一种方法:

s.where((s==2) | (pd.isna(s)), other=False).replace(2, True)
0    False
1     True
2      NaN
dtype: object

相关内容

  • 没有找到相关文章

最新更新