【问题标题】:Python read csv with Hebrew headerPython读取带有希伯来标题的csv
【发布时间】:2018-05-03 18:45:40
【问题描述】:

我尝试使用dataset=pandas.read_csv('filename') 制作框架。但不知何故我不能这样做,因为其中一个列标题是用希伯来语写的。

我检查过,DataFrame 有可能将希伯来语单词作为列标题。 dataset.columns = ['שלום', 'b','c','d','e'] 但我想从包含希伯来语单词的 csv 中导入数据本身,我不能。

我收到此错误UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf9 in position 0: invalid start byte

如何使用列标题将数据集导入数据集?

【问题讨论】:

    标签: python pandas csv utf-8 hebrew


    【解决方案1】:

    我用过:

    dataset = pd.read_csv('file_name.csv', encoding = "ISO-8859-8")
    

    有关编码,请参阅 https://docs.python.org/3/library/codecs.html#standard-encodings

    【讨论】:

      【解决方案2】:

      您的文件不是utf-8 编码。

      最有可能是带有Hebrew codepage 的ASCII。

      希伯来语代码页中的0xf9 与您在标题示例中显示的第一个(最后一个)字符匹配。

      您必须将encoding: 参数与the correct codepage 一起使用。

      【讨论】:

        【解决方案3】:

        至于如何检查你的编码,有一个简单的技巧here,可能有用:

        您可以使用记事本打开文件,然后转到文件 -> 另存为。保存按钮旁边会有一个编码下拉菜单,文件的当前编码将在此处选择。

        【讨论】:

          【解决方案4】:

          这是一个对我有用的答案:

           import pandas as pd
          
           f = open('your_file_path', encoding='iso8859-8',errors='replace')
           data = pd.read_csv(f, sep='|')
          

          您的文档的 sep 可以不同。这里主要是先用iso8859-8编码打开,然后把这个对象放入'read csv with pandas'之后。

          【讨论】:

            猜你喜欢
            • 2014-12-14
            • 1970-01-01
            • 2020-12-15
            • 2020-11-30
            • 1970-01-01
            • 2010-11-06
            • 2022-06-21
            • 2012-02-03
            • 1970-01-01
            相关资源
            最近更新 更多