【问题标题】:How to remove special characters from csv using pandas如何使用熊猫从 csv 中删除特殊字符
【发布时间】:2019-10-01 15:39:00
【问题描述】:

目前正在清理 csv 文件中的数据。成功地把所有的东西都变成小写字母,去掉了停用词和标点符号等。但是需要去掉特殊字符。例如,csv 文件包含诸如“César”“耻辱”之类的内容。如果有办法替换这些字符,那就更好了,但我可以删除它们。以下是我到目前为止的代码。

import pandas as pd
from nltk.corpus import stopwords
import string
from nltk.stem import WordNetLemmatizer

lemma = WordNetLemmatizer()

pd.read_csv('soccer.csv', encoding='utf-8')
df = pd.read_csv('soccer.csv')

df.columns = ['post_id', 'post_title', 'subreddit']
df['post_title'] = df['post_title'].str.lower().str.replace(r'[^\w\s]+', '').str.split()


stop = stopwords.words('english')

df['post_title'] = df['post_title'].apply(lambda x: [item for item in x if item not in stop])

df['post_title']= df['post_title'].apply(lambda x : [lemma.lemmatize(y) for y in x])


df.to_csv('clean_soccer.csv')

【问题讨论】:

  • 周围有很多答案,看看例如到this one。干杯。
  • 你真的可以发布一个示例 df 吗?
  • 试试这个:df.to_csv('clean_soccer.csv', encoding='utf-8-sig) 或只是utf-8
  • @VnC 非常感谢您的工作。
  • 我将作为答案发布,以便您批准:)

标签: python pandas csv data-cleaning


【解决方案1】:

保存文件时尝试:

df.to_csv('clean_soccer.csv', encoding='utf-8-sig')

或者干脆

df.to_csv('clean_soccer.csv', encoding='utf-8')

【讨论】:

    【解决方案2】:

    作为其他答案的替代方案,您可以使用string.printable

    import string
    
    printable = set(string.printable)
    
    def remove_spec_chars(in_str):
        return ''.join([c for c in in_str if c in printable])
    
    df['post_title'].apply(remove_spec_chars)
    

    作为参考,string.printable 因机器而异,它是数字、ascii_letters、标点符号和空格的组合。

    对于您的示例字符串César' '‘disgrace’',此函数返回'Csardisgrace'

    https://docs.python.org/3/library/string.html
    How can I remove non-ASCII characters but leave periods and spaces using Python?

    【讨论】:

      【解决方案3】:

      我不确定是否有一种简单的方法可以替换特殊字符,但我知道如何删除它们。尝试使用:

      df['post_title']= df['post_title'].str.replace(r'[^A-Za-z0-9]+', '')
      

      这应该用“Csardisgrace”替换“César”“disgrace”。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2019-08-13
        • 2018-02-02
        • 2017-09-21
        • 1970-01-01
        • 1970-01-01
        • 2020-05-13
        • 2021-03-29
        • 2019-01-09
        相关资源
        最近更新 更多