Последовательный порядок заголовков при выводе DataFrame в CSV - PullRequest
0 голосов
/ 01 октября 2019

Я перебираю ответ JSON и добавляю каждый элемент в DataFrame Pandas в Python.

В конце цикла я вывожу DataFrame в CSV. Однако каждый раз, когда я выводю CSV, заголовки не согласованы, так как порядок столбцов, кажется, меняется.

Как можно сделать порядок заголовков (и столбцов) согласованным каждый раз? Смотрите код, с которым я работаю ниже:

    output = pd.DataFrame()
    for item in json_resp:
        json_struct = {
            'col_1':json_resp['data'],
            'col_2':json_resp['data_2'],
            'col_2':json_resp['data_2']
        }
        output = output.append(json_struct, ignore_index=True)
    output.to_csv('csv_output.csv', index=False, encoding='utf-8-sig')

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Функция to_csv сохраняет столбцы в указанном вами порядке. Вы можете отсортировать столбцы после вставки или перед сохранением:

# Upon inserting - slow
output = output.append(json_struct, ignore_index=True, sort=True)

# Before saving, with known column names
output = output[['col_1', 'col_2', 'col_3']]

# Before saving, with unknown column names
output = output.sort_index(axis=1)
0 голосов
/ 01 октября 2019

Вы можете указать столбцы для сохранения в to_csv со списком. например,

output.to_csv('csv_output.csv', columns=['col_1', 'col_2', 'col_3'], headers=True, index ... 

Также посмотрите Панды, записывающие столбцы данных в csv

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...