【问题标题】:pandas dataframe and u'\u2019'熊猫数据框和 u'\u2019'
【发布时间】:2015-07-30 16:29:48
【问题描述】:

我有一个 pandas 数据框 (python 2.7),其中包含一个 u'\u2019',它不允许我将结果提取为 csv。

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 180: ordinal not in range(128)

有没有办法查询数据框并将这些字符替换为另一个?

【问题讨论】:

标签: python-2.7 pandas unicode dataframe


【解决方案1】:

在保存到文件时尝试使用不同的编码(Python 2.x 的 pandas 中的默认编码是 ascii,这就是您收到错误的原因,因为它无法处理 unicode 字符):

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

【讨论】:

  • 我试过了,但它不起作用。我得到:UnicodeDecodeError: 'utf8' codec can't decode byte 0xa0 in position 131152: invalid start byte
  • 您能以某种方式向我们提供数据帧数据吗?很明显,您的数据集中有奇怪的字符导致写入文件失败。
  • 这是我不能分享的机密数据。
【解决方案2】:

我没有设法导出整个文件。但是,我设法识别出导致问题的字符所在的行并将其消除

faulty_rows = []
for i in range(len(outcome)):
    try:
        test = outcome.iloc[i]
        test.to_csv("/Users/john/test/test.csv")
    except:
        pass
        faulty_rows.append(i)
        print i


tocsv = tocsv.drop(outcome.index[[indexes]])    

tocsv.to_csv("/Users/john/test/test.csv")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 2020-06-03
    相关资源
    最近更新 更多