在python中使用apply和lambda保留NaN值
我正在使用python,在a列中有一个值列表,其中包括一些NaN值。 我需要将它们编码为1和0,这取决于它们是否高于或低于中位数(0.4)。我已经尝试了下面的代码,它运行得相当好在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 你知道我该怎么解决这个问题吗 谢谢是
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