熊猫数据框到 csv 导出问题

Posted

技术标签:

【中文标题】熊猫数据框到 csv 导出问题【英文标题】:pandas dataframe to csv export issue 【发布时间】:2018-10-25 19:32:46 【问题描述】:

得到一个奇怪的错误,在 jupyter 笔记中我可以运行:

df1.to_csv("01.csv".format(report_path,db))  

我的 csv 出来了。

当我尝试在 jupyter 之外执行相同的操作时,将上述内容放入外部文件中并运行:

    #imports requred to run querys
    import pandas as pd
    from pandas import DataFrame,Series
    import numpy as np
    from pyhive import presto
    import matplotlib.pyplot as plt
    import seaborn as sn    

 #run config file, which contains the query to generate the report
    def run_config(db):
        print args.an
        print ("config is = 0".format(config))
        with open(config) as cfg:
            v = cfg.read()
        exec v

我收到此错误:

lib.write_csv_rows(self.data, ix, self.nlevels, self.cols, self.writer)
File "pandas/_libs/lib.pyx", line 1035, in pandas._libs.lib.write_csv_rows
UnicodeEncodeError: 'ascii' codec can't encode characters in position 8-11: ordinal not in range(128)

我相当确定它在我的 DF 中导致了这个错误,因为其他 df 没有这个问题。但是我迷失了如何修复或编辑代码来捕获它。

修复

df1.to_csv("01.csv".format(report_path,db), encoding='utf8-8')

【问题讨论】:

【参考方案1】:

我会尝试将代码更改为

df1.to_csv("01.csv".format(report_path,db), encoding='utf8-8')
    您遇到的字符不是 ASCII 很明显 我的猜测是您的 Jupyter 运行的解释器与您的脚本不同 对于非 ASCII 编码,UTF8 是一个不错的首选;如果它不起作用,请查看Unicode, Dammit。

【讨论】:

这是一个很好的猜测,我认为是正确的。我什至不知道您可以向 to_csv 函数添加编码选项,谢谢

以上是关于熊猫数据框到 csv 导出问题的主要内容,如果未能解决你的问题,请参考以下文章

多索引熊猫数据框到字典

熊猫数据框到 json 列表格式

从火花数据框到熊猫数据框

熊猫数据框到嵌套 JSON

具有多个键的熊猫数据框到 json

从熊猫数据框到以n维数组为特征的数据框