【发布时间】:2020-09-07 21:50:30
【问题描述】:
pandas 中有一个DataFrame,见下图
基本上它是从维基百科的文章中抓取的表格:https://de.wikipedia.org/wiki/Liste_der_Gro%C3%9Fst%C3%A4dte_in_Deutschland#Tabelle
为了进一步处理,我正在尝试清理数据。所以,这些语句运作良好
df['Name'] = df['Name'].str.replace('\d+', '')
df['Name'] = df['Name'].str.strip()
df['Name'] = df['Name'].str.replace(',', '')
df['Name'] = df['Name'].str.replace('-', '')
但是我怎样才能将所有这四个语句合二为一呢?可能使用正则表达式。
我尝试使用df['Name'] = df['Name'].str.replace(r'[\d\-,]+', ''),但没有成功。可能是因为使用了自动换行符。
我想要的输出是" Ber,li-n2 "-> "Berlin"。
未知的情况在'Mönchengladbach1, 5'周围发生。
【问题讨论】:
-
df['Name'] = df['Name'].str.replace(r'[\d\-,]+', '')应该可以工作。或df['Name'] = df['Name'].str.replace(r'[\d,-]+', '').str.strip() -
df['Name'] = df['Name'].str.replace('(\d+|,|-|<)', '') -
我在答案中将所有 Unicode 破折号添加到解决方案中。
-
你也可以把
-放到Regex-Group中。
标签: python-3.x regex pandas dataframe