使用pd.read_csv问题编码两种不同的语言

问题描述

我正在构建从德语到阿拉伯语的神经机器自动翻译器。我正在读取一个CSV文件,其中包含德语句子及其相应的阿拉伯语翻译。我想使用pd.read_csv同时阅读两种语言。我已经尝试过Python documentation中所有语言的所有代码,但没有一个起作用。

Aliases encoding for all languages

最适合我的是:

df = pd.read_csv("DLATS.csv",encoding ='windows-1256')

“ windows-1256”是阿拉伯语的编码别名。但是问题在于,它不能捕获诸如(ä)之类的德语特殊字符,而是将其转换为问号(?)。因此单词drängte变成了dr?ngte。

那么,任何人都可以帮助我解决此问题或解决该问题的方法吗?我曾想过将德语和阿拉伯语句子分别放在单独的CSV文件中,以便每个CSV文件仅包含一行,然后也许我会尝试将它们混合在Python代码中。但是看来pd.read_csv至少需要CSV文件中的两列才能工作。

更新:我注意到原始的csv文件也包含德语的这些问题。因此,由于原始文件位于Excel中,因此我最终设法通过直接读取excel而不是csv来解决我的问题,因此我使用了不带任何编码属性的pd.read_excel,并且效果很好。我以前不知道熊猫有pd.read_excel。

解决方法

就我而言,我使用清晰的read_csv

import pandas as pd

df = pd.read_csv('download.csv')
print(df)

   german      arabic
0  drängte     حث

如果结果不佳,则可能是数据没有正确保存在csv中。