【问题标题】:Pandas Dataframe - Replace all cell value subject to regex conditionPandas Dataframe - 根据正则表达式条件替换所有单元格值
【发布时间】:2021-09-25 21:18:45
【问题描述】:

我正在解决一个问题,在该列中,重复“。”的值很少。 ,例如-“.....”或“......”。

所以我想使用.loc 函数将所有这些值替换为np.NaN。 我想使用正则表达式函数来识别任何至少重复一次"." 的单元格值。

所以我在 Python 中使用了以下代码 -

energy.loc[bool(re.match('.+', energy['Energy Supply'])),'Energy Supply']=np.NaN

请帮忙

【问题讨论】:

    标签: python pandas regexp-replace


    【解决方案1】:

    您需要将点转义如下,因为点代表任何字符,加号是一个或多个,试试看:)

    re.match('\.+', energy['Energy Supply']))

    【讨论】:

      【解决方案2】:

      您可以使用str.contains 来检查一个点,然后转义它以匹配它。

      您不需要 + 量词,因为它表示 1 或更多。所以匹配一个点就足够了。

      import pandas as pd
      import numpy as np
      
      data = [
          "test",
          "test.",
          "..."
      ]
      energy = pd.DataFrame(data, columns=["Energy Supply"])
      energy.loc[energy['Energy Supply'].str.contains(r'\.'), 'Energy Supply'] = np.NaN
      print(energy)
      

      输出

        Energy Supply
      0          test
      1           NaN
      2           NaN
      

      【讨论】:

        猜你喜欢
        • 2015-10-09
        • 2018-09-26
        • 2020-01-16
        • 2021-06-28
        • 1970-01-01
        • 1970-01-01
        • 2014-04-30
        • 2017-08-29
        相关资源
        最近更新 更多