【问题标题】:replace all column values not in a list python替换不在列表python中的所有列值
【发布时间】:2022-07-03 23:25:47
【问题描述】:

我有一个如下所示的 df:

             Animal               Color                Note
         0    Cat                 Brown               Friendly
         1    Dog                 White               Furry
         2    Rabbit              Brown               Furry

现在我希望代码检查所有列中的值并与列表进行比较,用“NA”替换不在列表中的值。所以列表是

  my_list = ['Dog', 'White', 'Friendly']

而期望的输出是:

             Animal               Color                Note
         0    NA                  NA                  Friendly
         1    Dog                 White               NA
         2    NA                  NA                  Furry

我在下面的链接中发现了一个类似的问题 How to replace all values in a Pandas Dataframe not in a list?

所以按照那里的建议,我尝试了以下

     df_new = df[~df_in.isin(my_list)] = "NA"

但结果是它给了我“NA”,而不是所需的 df。有人可以帮我解决这个问题吗?非常感谢。

【问题讨论】:

    标签: python replace


    【解决方案1】:

    你可以使用where:

    df = df.where(df.isin(my_list))
    

    输出:

      Animal  Color      Note
    0    NaN    NaN  Friendly
    1    Dog  White       NaN
    2    NaN    NaN       NaN
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      • 2022-11-10
      • 2021-10-23
      • 2021-09-05
      • 2022-10-14
      • 1970-01-01
      • 2018-04-19
      相关资源
      最近更新 更多