Как преобразовать 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() здесь .