【问题标题】:How to remove non-specific char of a string/dataframe[i] in Python如何在 Python 中删除字符串/数据帧 [i] 的非特定字符
【发布时间】:2021-03-25 01:02:26
【问题描述】:

在我的数据清理过程中,我发现了一些包含单个字符的字符串,这可能会影响我的分析

即'你好,请帮我解决这个问题'。

到目前为止,我只找到了删除特定字符的工具,例如

char= 's'
def char_remover(text: 
    spec_char = ''.join (i for i in text if i not in s text)
    return spec_char

或 rsplit()、split() 函数,它们适用于删除字符串的第一个/最后一个字符。

最后,我想编写一个函数,从我的字符串/数据帧中删除所有单个字符(空白字符空白)。

我对这个问题的看法:

def spec_char_remover(text):
    spec_char_rem= ''.join(i for i in text if i not len(i) <= 1) 
    return spec_char_rem

但这显然行不通。

提前致谢。

【问题讨论】:

  • 能否请您添加两个示例行及其预期(已清理)输出?我不清楚清洁的逻辑,对不起。
  • ,感谢您的快速回复,如果我的问题正确,string='请帮我解决这个问题'cleaned_string='请帮我解决这个问题'我应用了一些算法,例如 tf和 tfidf,而一些最“常用”的词是单个字符,因此它们会影响我的进一步分析。
  • 我尽快试试,谢谢
  • 你应该小心一些特殊的情况,比如“我”和可能的俚语,但除此之外,大部分情况下应该没问题。
  • 因为我使用非常技术性的专利,所以代词和俚语不是问题。但是感谢您的提示!

标签: python pandas string function data-cleaning


【解决方案1】:

你可以使用正则表达式:

>>> import re
>>> s = 'hello please help r me with this s question'
>>> re.sub(' . ', ' ', s)
'hello please help me with this question'
正则表达式中的

"." 匹配任何字符。所以“ . ”匹配任何被空格包围的字符。您还可以使用“\s.\s”来匹配任何被任何空格包围的字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-18
    • 2020-06-02
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2018-02-24
    • 2018-09-29
    相关资源
    最近更新 更多