【问题标题】:Reading multilingual files in Python 3.9在 Python 3.9 中读取多语言文件
【发布时间】:2021-10-25 19:38:00
【问题描述】:

在处理包含大约 5 种语言(英语、法语、西班牙语、德语、意大利语、瑞典语)的 CSV 文件时,我遇到了一些挑战。目的是将 OneCol(我的 df 中的连接列)中的值合并到不同的字典中。另一个条件是根据国家列进行合并(例如,法语将使用 FR 字典进行检查)。我在阅读文件时遇到了麻烦,我尝试过的一切都结束了,但完全失败了,我觉得有点筋疲力尽。字典还包含特殊的字符/字典,在这种情况下,是我将它们转换为列表的数据框。 我得到的错误是:'ascii' codec can't decode byte 0xe4 in position 89: ordinal not in range. 我的代码如下所示:

df['ResultG'] = np.where(df["Country"].isin(['1','2','12']), f['OneCol'].apply(lambda x: ' '.join(list(set(x.split()) & set(words.words())))), np.where(df["Country"]=='3', df['OneCol'].apply(lambda x: ' '.join(list(set(x.split()) & set(list_fr)))), "Other"))

我尝试了一切,从将文件设置为 utf-8 到在 Notepad++ 中实际更改文件。欢迎任何想法或建议。谢谢

【问题讨论】:

  • 0xe4 是一个 UTF-8 连续字节,但它在那里被视为 ascii 编码的字符串。您是否尝试在 read_csv (stackoverflow.com/questions/36462852/…) 中设置encoding="utf-8"
  • 谢谢,我通过进入 notepad++ 并将文件从 ANSI 转换为 UTF-8 解决了这个问题。另外,我认为从 NLTK 安装所有软件包会弄乱我的语法。现在全部排序。

标签: python pandas dataframe ascii multilingual


【解决方案1】:

问题:我的文件是 ANSI 格式。我使用 Notepad++ 将其转换为 UTF-8。在记事本++中,转到编码并选择转换为 UTF-8。然后将这段代码添加到您的数据框中:

df=pd.read_csv(r'file path.txt', encoding='utf-8')

我的另一个问题是因为我尝试了许多“解决方案”,但出了点问题,我无法使用 Python,甚至无法使用英文文本。我不得不重新安装所有东西。

希望我的回答对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 2019-01-08
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    相关资源
    最近更新 更多