【问题标题】:Remove puncts from Pandas Dataframe从 Pandas Dataframe 中删除 puncts
【发布时间】:2021-08-03 19:40:04
【问题描述】:

我想使用推文从数据框中删除所有标点符号和拉丁字符以进行情绪分析。代码如下。我想从列中删除标点符号,但代码删除了文本,只剩下标点符号!!有什么建议吗?

remove_puncts = lambda x: re.sub("[^A-Za-z0-9\s]+", "", str(x))

df['new'] = df.Tweet.apply(remove_puncts)

【问题讨论】:

  • 请再次检查my answer,正则表达式按预期工作。因此,您的问题目前不可重现。请提供更多详细信息,最好是重现您的问题的最小示例。

标签: python pandas sentiment-analysis punctuation


【解决方案1】:

尝试使用pandas.Series.str.replace

df['Tweet'].str.replace(r'[^0-9a-zA-Z\s]+', '', regex=True)

示例输入:

df = pd.DataFrame({'Tweet': ['abc, def; (hij)!?', '[w] x/y: z']})
df
               Tweet
0  abc, def; (hij)!?
1         [w] x-y: z

输出:

>>> df['Tweet'].str.replace(r'[^0-9a-zA-Z\s]+', '', regex=True)
0    abc def hij
1         w xy z

【讨论】:

  • @TimRoberts 好吧,我有,并且正则表达式 应该 工作。一定有其他错误或缺失的信息。我现在不能,但我稍后会尝试提供一个工作示例
  • 不,问题是“我如何删除标点符号”。您正在解决“我如何只保留标点符号。”
  • @TimRoberts 要么您不熟悉正则表达式,要么您浏览 Q/A 的速度太快。答案正是做 OP 想要的。正则表达式中的 ^ 符号反转匹配。我编辑了我的答案以证明它有效。问题不可重现,OP 肯定有其他问题。
  • 不用担心。我只是希望OP能提供更多信息。
  • 它只保留标点符号。那就是问题所在。我也使用了其他方法来解决这个问题,但它们都只返回标点符号。推文是希腊语,我不知道编码是否有问题或其他问题:/
猜你喜欢
  • 2018-05-01
  • 2020-02-10
  • 2016-08-18
  • 2021-10-30
  • 1970-01-01
  • 2017-09-25
相关资源
最近更新 更多