【问题标题】:Using Python and Regex in Power Query在 Power Query 中使用 Python 和正则表达式
【发布时间】:2023-02-21 01:05:40
【问题描述】:

我有一个虚拟表,其中包含有关邮政编码的行,并具有一个可识别有效邮政编码的正则表达式字符串。

我正在尝试使用 python,因为实际的源数据有一个正则表达式格式的字符串,而 MS SQL 不支持正则表达式。

我是 Python 的新手,想在 power 查询中使用 Python 来确定 postode 是否对其正则表达式字符串有效。

我在硬编码正则表达式字符串时有这个工作,我在尝试引用包含正则表达式值的数据集时遇到了问题。

# 'dataset' holds the input data for this script
import pandas as pd
pat = r'(?i:^PH)(?:1|2|3|4|5|6|7|8|10|14)\b'

dataset["New"] = dataset["Postcode"].str.replace(pat,'Inside Coverage area')

以上作品

然而,这不是。

# 'dataset' holds the input data for this script
import pandas as pd

dataset["New"] = dataset["Postcode"].str.replace(dataset["RegexChk"],'Inside Coverage area')

我已经删除了变量 pat,但尝试过使用和不使用它都没有区别。

这是我得到的错误TypeError:无法散列的类型:“系列”

我用谷歌搜索,但我似乎在兜圈子。

【问题讨论】:

    标签: python powerbi powerquery


    【解决方案1】:

    dataset["regexChk"] 是一个系列而不是一个模式。使用 assign 函数创建一个新列。它可以按行遍历数据框并使用指定列中的数据。 RegexChk 的每一行中是否有正则表达式模式?

    # 'dataset' holds the input data for this script
    import pandas as pd
    
    dataset = dataset.assign(New=lambda x: x["Postcode"].str.replace(x["RegexChk"],'Inside Coverage area'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-18
      • 2017-03-04
      • 2018-04-24
      • 2013-06-24
      • 1970-01-01
      • 2020-09-14
      相关资源
      最近更新 更多