【问题标题】:Pandas Dataframe not update column valuesPandas Dataframe 不更新列值
【发布时间】:2020-12-26 14:26:17
【问题描述】:
这是print(df['Title']) 结果。
我正在执行正则表达式来替换不必要的字符
def remove_punctuations(text):
return re.sub(r']!@-#$%^&*(){};:,./<>?\|`~=_+',' ',text)
df1 = pd.read_csv(file2)
print(df1["Title"])
df1['Title'] = df1['Title'].apply(remove_punctuations)
print(df1["Title"])
我做错了什么。请任何人指出这一点。
问候,
【问题讨论】:
标签:
python
pandas
dataframe
【解决方案1】:
您应该将特殊字符包含在字符类中,用[...] 方括号表示:
def remove_punctuations(text):
return re.sub(r'\s*[\[\]!@#$%^&*(){};:,./<>?\|`~=_+-]\s*', ' ', text).strip()
请注意,使用的替换逻辑将独立的特殊字符替换为单个空格。对于特殊字符可能开始或结束输入的边缘情况,我们使用strip()。
【解决方案2】:
您的正则表达式正在查找 "]!@-#$%^&*(){};:,./<>?\| 标点符号的精确链,然后替换为空白 " "。
将你的函数替换为:
def remove_punctuations(text):
return re.sub(r'[^\w\s]',' ',text)
它会在哪里寻找任何标点符号或空格的实例。