我有一个带有特殊字符的 Pandas colum,例如 {{,}},[,],,。 (逗号是分隔符)。
我尝试使用以下方法用下划线 ('_') 替换特殊字符,但它不起作用。你能告诉我我做错了什么吗?谢谢。
import pandas as pd
data = [["facebook_{{campaign.name}}"], ["google_[email]"]]
# Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['Marketing'])
print(df)
df['Marketing'].str.replace(r"\(|\)|\{|\}|\[|\]|\|", "_")
print(df)
输出:
Marketing
0 facebook_{{campaign.name}}
1 google_[email]
Marketing
0 facebook_{{campaign.name}}
1 google_[email]
答案 0 :(得分:0)
从此DataFrame
:
>>> import pandas as pd
>>> data = [["facebook_{{campaign.name}}"], ["google_[email]"]]
>>> df = pd.DataFrame(data, columns = ['Marketing'])
>>> df
Marketing
0 facebook_{{campaign.name}}
1 google_[email]
我们可以像您建议的那样使用 replace
和 regex
,包括 |
,它是一个 or
运算符,除了最后的 \|
是符号|
。
然后我们对双精度 _
进行去重并删除最后剩余的 _
以获得预期结果:
>>> df['Marketing'] = df['Marketing'].str.replace(r"\(+|\)+|\{+|\}+|\[+|\]+|\|+|\_+|\.+", "_", regex=True).str.replace(r"_+", "_", regex=True).str.replace(r"_$", "", regex=True)
>>> df
0 facebook_campaign_name
1 google_email
Name: Marketing, dtype: object