【问题标题】: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】:

    您的正则表达式正在查找 "]!@-#$%^&amp;*(){};:,./&lt;&gt;?\| 标点符号的精确链,然后替换为空白 " "

    将你的函数替换为:

    def remove_punctuations(text):
        return re.sub(r'[^\w\s]',' ',text)
    

    它会在哪里寻找任何标点符号或空格的实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      相关资源
      最近更新 更多