Python 中將 Pandas DataFrame 轉換為 JSON?
阿新 • • 發佈:2021-06-11
Pandas DataFrames 是資料的表格表示,其中列代表單個數據條目中的各種資料點,每一行都是唯一的資料條目。而 JSON 是用 JavaScript 物件表示法編寫的文字。
將 Pandas DataFrame 轉換為 JSON
要將 Pandas DataFrames 轉換為 JSON 格式,我們使用DataFrame.to_json()
Python 中Pandas庫中的函式。to_json 函式中有多個自定義項可用於實現所需的 JSON 格式。看一下函式接受的引數,再探討定製
引數:
範圍 | 價值 | 用 |
---|---|---|
path_or_buf | 字串或檔名,可選 | 檔案路徑或物件。 |
東方 | 'split', 'records', 'index', 'columns', 'values', 'table', default='index' | 指示預期的 JSON 字串格式。 |
日期格式 | 無,“紀元”,“iso”,預設 =“紀元” | 日期轉換型別。'epoch' = 紀元毫秒,'iso' = ISO8601。預設值取決於方向。對於 orient='table',預設值為 'iso'。對於所有其他方向,預設值為 'epoch'。 |
雙精度 | 整數值,預設值=10 | 編碼浮點值時使用的小數位數。 |
force_ascii | 布林值,預設值 = True |
強制編碼字串為 ASCII。 |
日期_單位 | 's', 'ms', 'us', 'ns', default='ms' | 要編碼到的時間單位控制時間戳和 ISO8601 精度。這些值分別代表秒、毫秒、微秒和納秒。 |
預設處理程式 | 可呼叫函式 | 如果物件無法以其他方式轉換為適用於 JSON 的格式,則要呼叫的處理程式。應該接收一個引數,它是要轉換的物件並返回一個可序列化的物件。 |
線 | 布林值,預設值 = False | 如果 'orient' 是 'records' 寫出行分隔的 json 格式。如果 'orient' 不正確,則會丟擲 ValueError,因為其他人不是這樣的。 |
壓縮 | 'infer', 'gzip', 'bz2', 'zip', 'xz', None, default='infer' |
表示在輸出檔案中使用的壓縮的字串,僅在第一個引數是檔名時使用。預設情況下,壓縮是從檔名推斷的。 |
指數 | 布林值,預設值 = True | 是否在 JSON 字串中包含索引值。僅當 orient 為 'split' 或 'table' 時才支援不包括索引 (index=False)。 |
縮排 | 整數值 | 用於縮排每條記錄的空格長度。無需提及可選引數。 |
我們現在看幾個例子來理解函式DataFrame.to_json的用法。
示例 1:基本用法
import numpy as np
import pandas as pd
data = np.array([[ '1' , '2' ], [ '3' , '4' ]])
dataFrame = pd.DataFrame(data, columns = [ 'col1' , 'col2' ])
json = dataFrame.to_json()
print (json)
|
輸出 :
{"col1":{"0":"1", "1":"3"}, "col2":{"0":"2", "1":"4"}}
示例 2:探索 DataFrame.to_json 函式的 'orient' 屬性
import numpy as np import pandas as pd data = np.array([['1', '2'], ['3', '4']]) dataFrame = pd.DataFrame(data, columns = ['col1', 'col2']) json = dataFrame.to_json() print(json) json_split = dataFrame.to_json(orient ='split') print("json_split = ", json_split, "\n") json_records = dataFrame.to_json(orient ='records') print("json_records = ", json_records, "\n") json_index = dataFrame.to_json(orient ='index') print("json_index = ", json_index, "\n") json_columns = dataFrame.to_json(orient ='columns') print("json_columns = ", json_columns, "\n") json_values = dataFrame.to_json(orient ='values') print("json_values = ", json_values, "\n") json_table = dataFrame.to_json(orient ='table') print("json_table = ", json_table, "\n")
|
輸出 :
json_split = {“columns”:[“col1”, “col2”], “index”:[0, 1], “data”:[[“1”, “2”], [“3”, “4”]]} json_records = [{“col1″:”1”, “col2″:”2”}, {“col1″:”3”, “col2″:”4”}] json_index = {“0”:{“col1″:”1”, “col2″:”2”}, “1”:{“col1″:”3”, “col2″:”4”}} json_columns = {“col1”:{“0″:”1”, “1”:”3″}, “col2”:{“0″:”2”, “1”:”4″}} json_values = [[“1”, “2”], [“3”, “4”]] json_table = {“schema”:{“fields”:[{“name”:”index”, “type”:”integer”}, {“name”:”col1″, “type”:”string”}, {“name”:”col2″, “type”:”string”}], “primaryKey”:[“index”], “pandas_version”:”0.20.0″}, “data”:[{“index”:0, “col1″:”1”, “col2″:”2”}, {“index”:1, “col1″:”3”, “col2″:”4”}]}