【问题标题】:Keep NaN values using apply and lambda in python在 python 中使用 apply 和 lambda 保留 NaN 值
【发布时间】:2020-06-05 19:55:50
【问题描述】:

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

df["A_median"] = (df["A"].apply(lambda count: 0 if count<median_a else 1))

但它给我的 NaN 值是 1 而不是保留它们。

  A   A_median
36.6  1
NaN   1
NaN   1
0.1   0

决赛桌应该如下

  A   A_median
36.6  1
NaN   NaN
NaN   NaN
7     0

知道如何解决这个问题吗?

谢谢

【问题讨论】:

    标签: python pandas lambda apply


    【解决方案1】:

    是吗:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 2020-05-13
      • 2021-02-14
      • 2017-11-30
      • 2021-05-18
      • 2019-03-11
      • 1970-01-01
      相关资源
      最近更新 更多