如果字符串包含字符模式,如何用 None 替换值?

How to replace values by None if string contains character pattern?

我想替换 pandas df 列中的每个字符串 departments 为 None 如果它包含 )

         departments   var1   var1.1
   1      transport     aa      uu
   2      industry)     bb      tt
   3      aviation)     cc      tt

数据集应该的样子

         departments   var1    var2
   1      transport     aa      uu
   2      None          bb      tt
   3      None          cc      tt

这里有一个类似的解决方案:

我不使用 spark,如何将它转换为基础 python?

df.withColumn("departments", when(col("departments").rlike("\)"), None)
          .otherwise(col("departments"))
      )

使用您显示的示例,请尝试执行以下操作。对于我们在 m 变量设置 None 中获得的值,您可以使用 str.contains function to find out whatever values in departments column has ) then using .loc 到这些值。

m = df['departments'].str.contains('\)', na=False)
df.loc[m,'departments'] = None