讀Json文件生成pandas數據框詳情
前言
本文講解如何加載json文件或字符串為pandas數據框。pandas把json數據分成幾種典型類型,希望對你實際數據應用開發有所啟示。
有時可能需要轉換json文件位pandas數據框。使用pandas內置的read_json()函數很容易實現,
其語法如下:
read_json(‘path’, orient=’index’)
- path: json文件的路徑
- orient: json文件的格式描述,缺省是
index
,還有其他選型:split, records, columns, values
。
下面通過幾個示例進行說明。
records格式
假設json文件my_file.json的格式如下:
[ { "points": 25, "assists": 5 }, { "points": 12, "assists": 7 }, { "points": 15, "assists": 7 }, { "points": 19, "assists": 12 } ]
我們使用pandas的函數read_json,隻要隻從orient參數位records:
# 加載json文件,生成pandas數據框 df = pd.read_json('data/json_file.json', orient='records') # 查看數據框 print(df)
輸出結果:
points assists
0 25 5
1 12 7
2 15 7
3 19 12
index格式
假設json文件格式為:
{ "0": { "points": 25, "assists": 5 }, "1": { "points": 12, "assists": 7 }, "2": { "points": 15, "assists": 7 }, "3": { "points": 19, "assists": 12 } }
與上面實現代碼一樣,僅需要修改orient=‘index’:
import pandas as pd df = pd.read_json("data/my_file.json", orient='index') print(df)
輸出結果:
points assists
0 25 5
1 12 7
2 15 7
3 19 12
columns 類型
假設json文件格式為:
{ "points": { "0": 25, "1": 12, "2": 15, "3": 19 }, "assists": { "0": 5, "1": 7, "2": 7, "3": 12 } }
加載代碼修改orient參數為’columns’:
import pandas as pd df = pd.read_json("data/my_file.json", orient='columns') print(df)
結果與上面一致。
values格式
假設json文件代碼如下:
[ [ 25, 5 ], [ 12, 7 ], [ 15, 7 ], [ 19, 12 ] ]
加載代碼如下:
import pandas as pd df = pd.read_json("data/my_file.json", orient='values') print(df)
輸出結果:
0 1
0 25 5
1 12 7
2 15 7
3 19 12
split 參數示例
下面看split參數示例:
import pandas as pd # 示例數據 data = '{"columns":["col 1","col 2"], "index":["row 1","row 2"], "data":[["a","b"],["c","d"]]}' df = pd.read_json(data, orient='split') print(df)
輸出交叉表形式結果:
col 1 col 2
row 1 a b
row 2 c d
如果不指定index,則行自動生成序號:
import pandas as pd data = '{"columns":["col 1","col 2"], "data":[["a","b"],["c","d"]]}' df = pd.read_json(data, orient='split') print(df)
輸出結果:
col 1 col 2
0 a b
1 c d
壓縮與編碼
使用compression參數可以解壓並載入json文件,參數選型有:‘zip’, ‘gzip’, ‘bz2’, ‘zstd’。如果指定zip,則確保文件為zip文件格式,None表示不解壓。
使用 encoding
指定自定義編碼,缺省為 UTF-8 編碼。
假設my_file.zip壓縮文件格式為:
[ [ 25, 5 ], [ 12, 7 ], [ 15, 7 ], [ 19, 12 ] ]
載入代碼:
import pandas as pd df = pd.read_json("data/my_file.zip", orient='values', compression='zip') print(df)
到此這篇關於讀Json文件生成pandas數據框詳情的文章就介紹到這瞭,更多相關Json生成pandas數據框內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python中的pandas表格模塊、文件模塊和數據庫模塊
- pandas快速處理Excel,替換Nan,轉字典的操作
- Python對130w+張圖片檢索的實現方法
- python數學建模之三大模型與十大常用算法詳情
- Python加載文件內容的兩種實現方式