Pandas DataFrame для CSV экспорта проблемы - PullRequest
0 голосов
/ 16 мая 2018

Получая странную ошибку, в jupyter notes я могу запустить:

df1.to_csv("{0}{1}.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("{0}{1}.csv".format(report_path,db), encoding='utf8-8')

1 Ответ

0 голосов
/ 16 мая 2018

Я бы попробовал изменить код на

df1.to_csv("{0}{1}.csv".format(report_path,db), encoding='utf8-8')
  1. Кажется очевидным, что вы сталкиваетесь с персонажами, которые не являются ASCII
  2. Мой думаю, означает, что ваш Jupyter использует интерпретатор, отличный от вашего сценария
  3. Для кодирования не ASCII, UTF8 - хорошая первая ставка; если это не сработает, взгляните на Unicode, Dammit .
...