Как преобразовать DataFrame Pandas в JSON


Часто вас может заинтересовать преобразование кадра данных pandas в формат JSON.

К счастью, это легко сделать с помощью функции to_json() , которая позволяет преобразовать DataFrame в строку JSON в одном из следующих форматов:

  • 'split' : dict как {'index' -> [index], 'columns' -> [columns], 'data' -> [values]}
  • 'records': список вроде [{столбец -> значение}, …, {столбец -> значение}]
  • 'index': dict как {индекс -> {столбец -> значение}}
  • 'столбцы': dict как {столбец -> {индекс -> значение}}
  • 'values': только массив значений
  • 'таблица': dict как {'схема': {схема}, 'данные': {данные}}

В этом руководстве показано, как преобразовать DataFrame в каждый из шести форматов, используя следующие pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 19],
 'assists': [5, 7, 7, 12]}) 

#view DataFrame
df

 points assists
0 25 5
1 12 7
2 15 7
3 19 12

Способ 1: «Разделить»

df.to_json (orient='split')

{
 "columns": [
 "points",
 "assists"
 ],
 "index": [
 0,
 1,
 2,
 3
 ],
 "data": [
 [
 25,
 5
 ],
 [
 12,
 7
 ],
 [
 15,
 7
 ],
 [
 19,
 12
 ]
 ]
}

Способ 2: «Записи»

df.to_json (orient='records')

[
 {
 "points": 25,
 "assists": 5
 },
 {
 "points": 12,
 "assists": 7
 },
 {
 "points": 15,
 "assists": 7
 },
 {
 "points": 19,
 "assists": 12
 }
] 

Способ 3: «Индекс»

df.to_json (orient='index') 

{
 "0": {
 "points": 25,
 "assists": 5
 },
 "1": {
 "points": 12,
 "assists": 7
 },
 "2": {
 "points": 15,
 "assists": 7
 },
 "3": {
 "points": 19,
 "assists": 12
 }
}

Способ 4: «Столбцы»

df.to_json (orient='columns') 

{
 "points": {
 "0": 25,
 "1": 12,
 "2": 15,
 "3": 19
 },
 "assists": {
 "0": 5,
 "1": 7,
 "2": 7,
 "3": 12
 }
}

Метод 5: «Ценности»

df.to_json (orient='values') 

[
 [
 25,
 5
 ],
 [
 12,
 7
 ],
 [
 15,
 7
 ],
 [
 19,
 12
 ]
]

Способ 6: «Таблица»

df.to_json (orient='table') 

{
 "schema": {
 "fields": [
 {
 "name": "index",
 "type": "integer"
 },
 {
 "name": "points",
 "type": "integer"
 },
 {
 "name": "assists",
 "type": "integer"
 }
 ],
 "primaryKey": [
 "index"
 ],
 "pandas_version": "0.20.0"
 },
 "data": [
 {
 "index": 0,
 "points": 25,
 "assists": 5
 },
 {
 "index": 1,
 "points": 12,
 "assists": 7
 },
 {
 "index": 2,
 "points": 15,
 "assists": 7
 },
 {
 "index": 3,
 "points": 19,
 "assists": 12
 }
 ]
}

Как экспортировать файл JSON

Вы можете использовать следующий синтаксис для экспорта файла JSON по определенному пути к файлу на вашем компьютере:

#create JSON file 
json_file = df.to_json (orient='records') 

#export JSON file
with open('my_data.json', 'w') as f:
 f.write(json_file)

Вы можете найти полную документацию для функции pandas to_json() здесь .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.