【发布时间】:2021-07-15 11:14:17
【问题描述】:
我有一个数据框中的单词列表,我想用空字符串替换它。 我有一个名为 source 的列,我必须正确清理它。 例如,将“siliconvalley.co”替换为“siliconvalley”
我创建了一个列表
list = ['.com','.co','.de','.co.jp','.co.uk','.lk','.it','.es','.ua','.bg','.at','.kr']
并用空字符串替换它们
for l in list:
df['source'] = df['source'].str.replace(l,'')
在输出中,我得到了“silinvalley”,这意味着它也替换了“co”而不是“.co” 我希望代码替换与模式完全匹配的数据。请帮忙!
【问题讨论】:
-
Series.str.replace()默认将替换字符串作为正则表达式处理,因此点表示“任何字符”。你要么需要传递regex=False,要么用反斜杠转义点,例如'\.com'而不是'.com',那么它们将只匹配文字点。 -
能否请您给我们一些您的数据框以及您的输出?
-
顺便说一句,使用像
list这样的内置名称作为变量名是不好的做法,最好使用像domains = ['\.com', ...]这样的名称。 -
您只想从字符串中删除域 TLD 吗?
标签: python pandas database dataframe numpy