python - конвертирует pandas dataframe в json или dict, а затем обратно в df с неуникальными столбцами - PullRequest
0 голосов
/ 26 апреля 2018

Мне нужно отправить фрейм данных из бэкэнда во внешний интерфейс, поэтому сначала нужно преобразовать его либо в объект, сериализуемый JSON, либо непосредственно в JSON. Проблема в том, что у меня есть некоторые кадры данных, которые не имеют уникальных столбцов. Я изучил параметры orient, to_json(), to_dict() и from_dict(), но все еще не могу заставить его работать ...

Цель состоит в том, чтобы иметь возможность преобразовать df в нечто, сериализуемое json, а затем обратно в его первоначальное "я".

Мне также нелегко скопировать его с помощью pd.read_clipboard, поэтому я включил образец df, вызывающий проблемы в качестве изображения (извините!).

enter image description here

1 Ответ

0 голосов
/ 27 апреля 2018

Я нашел способ заставить его работать.

Вот простой воспроизводимый пример:

import pandas as pd
import json

# create simple df with two identical named columns
df = pd.DataFrame([[1, 2, 3, 4]], columns=['col1', 'col2', 'col1', 'col2'])

# orient='split' conservers order
jsonized_df = df.to_json(orient='split')

# suppose the df is part of a bigger data structure being sent to another app
random_dict = {'foo': 'bar'}
all_data = [random_dict, jsonized_df]
data_to_frontend = json.dumps(jsonized_df)

# then from the other app
all_data = json.loads(data_to_frontend)
final_df = pd.read_json(all_data[1], orient='split') #important to remember to include the orient parameter when reading the json df as well!

Final_df будет идентичен исходному_df с сохранением порядка!

...