我有一个Pandas数据框data
,它有几列。其中一列是GEN
。这一列包含了德国城市的字符串。其中一些城市的格式不好,这意味着它们的值类似于"Frankfurt a.Main"
。对于data['GEN']
中的每个元素,我想替换"\.[A-ZÄÖÜ]"
形式的每个表达式(即点后跟大写字母)。例如,
"Frankfurt a.Main"
变为"Frankfurt a. Main"
"Frankfurt a.d.Oder"
变为"Frankfurt a.d. Oder"
,依此类推。
我非常肯定pandas.Series.str.contains
和pandas.Series.str.replace
在这里是有帮助的,但是我的一个问题是我不知道如何将替换任务放在可以被上述函数使用的形式中。
2条答案
按热度按时间pkbketx91#
您可以使用
pandas.Series.str.replace
来捕获原始数据中组成德国城市名称的两个组,然后在它们之间添加一个空格。试试看:
#输出:
1szpjjfi2#
您可以使用正lookbehind
(?<=\.)
向左Assert一个点,并匹配[A-ZÄÖÜ]
中的一个在替换中,使用一个空格,后跟使用
\g<0>
的完全匹配输出量