pandas - 替换熊猫列特殊字符
问题描述
我有一个带有特殊字符的熊猫列,例如 {{,}},[,],,。(逗号是分隔符)。
我尝试使用以下内容将特殊字符替换为下划线('_'),但它不起作用。你能告诉我我做错了什么吗?谢谢。
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]
解决方案
从此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
按照您的建议使用 a regex
,包括|
which 是一个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
推荐阅读
- java - HashMap 问题:我想弄清楚的算法
- aes - 在 javascript 上使用 AES-128 位加密时有所不同
- java - 使用 itextpdf 5.5.11 和 xmlworker 5.4.2 生成时,俄语字符未在 PDF 中显示
- bookdown - 如何交叉引用 block2 自定义块?
- webgl - webGL gl.uniformMatrix4v 函数
- arrays - Python中以下两种初始化矩阵方式的区别
- sql - 如何编写可能来自不同表的“属于”关联?
- android - 如何在应用后台保持观察互联网访问
- heatmap - 如何在相关矩阵热图中的值旁边添加显着性星号?
- go - go模块没有正确下载动态库的cgo软链接