วิธีแปลง pandas dataframe เป็น json


บ่อยครั้งที่คุณอาจสนใจที่จะแปลง DataFrame ของ pandas เป็นรูปแบบ JSON

โชคดีที่ทำได้ง่ายโดยใช้ ฟังก์ชัน to_json() ซึ่งช่วยให้คุณสามารถแปลง DataFrame เป็นสตริง JSON ด้วยรูปแบบใดรูปแบบหนึ่งต่อไปนี้:

  • ‘split’: กำหนดเช่น {‘index’ -> [index], ‘columns’ -> [columns], ‘data’ -> [values]}
  • ‘บันทึก’: รายการเช่น [{คอลัมน์ -> ค่า}, …, {คอลัมน์ -> ค่า}]
  • ‘index’: dict เช่น {index -> {column -> value}}
  • ‘คอลัมน์’: กำหนดเช่น {คอลัมน์ -> {ดัชนี -> ค่า}}
  • ‘values’: เพียงอาร์เรย์ของค่า
  • ‘ตาราง’: กำหนดเช่น {‘สคีมา’: {สคีมา}, ‘ข้อมูล’: {data}}

บทช่วยสอนนี้แสดงวิธีการแปลง DataFrame เป็นรูปแบบทั้งหกรูปแบบโดยใช้ Pandas DataFrame ต่อไปนี้:

 import pandas as pd

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

#view DataFrame
df

        assist points
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 ') 

{
   "dots": {
      "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 ') 

{
   "plan": {
      "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() ได้ ที่นี่

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *