在python中使用apply和lambda保留NaN值

在python中使用apply和lambda保留NaN值,python,pandas,lambda,apply,Python,Pandas,Lambda,Apply,我正在使用python,在a列中有一个值列表,其中包括一些NaN值。 我需要将它们编码为1和0,这取决于它们是否高于或低于中位数(0.4)。我已经尝试了下面的代码,它运行得相当好 df["A_median"] = (df["A"].apply(lambda count: 0 if count<median_a else 1)) 最终的表格应如下所示 A A_median 36.6 1 NaN NaN NaN NaN 7 0 你知道我该怎么解决这个问题吗 谢谢是

我正在使用python,在a列中有一个值列表,其中包括一些NaN值。 我需要将它们编码为1和0,这取决于它们是否高于或低于中位数(0.4)。我已经尝试了下面的代码,它运行得相当好

df["A_median"] = (df["A"].apply(lambda count: 0 if count<median_a else 1))
最终的表格应如下所示

  A   A_median
36.6  1
NaN   NaN
NaN   NaN
7     0
你知道我该怎么解决这个问题吗

谢谢

是:

median_a = 0.4
df['A_median'] = (df['A'] > median_a).where(df.A.notna())
输出:

      A  A_median
0  36.6       1.0
1   NaN       NaN
2   NaN       NaN
3   0.1       0.0
是:

输出:

      A  A_median
0  36.6       1.0
1   NaN       NaN
2   NaN       NaN
3   0.1       0.0