在 Pandas 中載入 JSON 檔案

Suraj Joshi 2023年1月30日 2021年1月22日
  1. 將 JSON 檔案載入到 Pandas DataFrame 中
  2. 將面向索引的 JSON 檔案載入到 Pandas DataFrame 中
  3. 將面向列的 JSON 檔案載入到 Pandas DataFrame 中
在 Pandas 中載入 JSON 檔案

本教程介紹瞭如何使用 pandas.read_json() 方法將一個 JSON 檔案載入到 Pandas DataFrame 中。

將 JSON 檔案載入到 Pandas DataFrame 中

我們可以使用 pandas.read_json() 函式將 JSON 檔案的路徑作為引數傳遞給 pandas.read_json() 函式,將 JSON 檔案載入到 Pandas DataFrame 中。

{
    "Name": {
        "1": "Anil",
        "2": "Biraj",
        "3": "Apil",
        "4": "Kapil"
    },
    "Age": {
        "1": 23,
        "2": 25,
        "3": 28,
        "4": 30
    }
}

示例 data.json 檔案的內容如上所示。我們將從上述 JSON 檔案中建立一個 DataFrame。

import pandas as pd

df=pd.read_json("data.json")

print("DataFrame generated using JSON file:")
print(df)

輸出:

DataFrame generated using JSON file:
    Name  Age
1   Anil   23
2  Biraj   25
3   Apil   28
4  Kapil   30

它顯示的是由 data.json 檔案中的資料生成的 DataFrame。我們必須確保在當前工作目錄下有 data.json 檔案才能生成 DataFrame,否則我們需要提供 JSON 檔案的完整路徑作為 pandas.read_json() 方法的引數。

由 JSON 檔案形成的 DataFrame 取決於 JSON 檔案的方向。我們一般有三種不同的 JSON 檔案的面向。

  • 面向索引
  • 面向值
  • 面向列

將面向索引的 JSON 檔案載入到 Pandas DataFrame 中

{
    "0": {
        "Name": "Anil",
        "Age": 23
    },
    "1": {
        "Name": "Biraj",
        "Age": 25
    },
    "2": {
        "Name": "Apil",
        "Age": 26
    }
}

這是一個面向索引的 JSON 檔案的例子,其中頂層鍵代表資料的索引。

import pandas as pd

df=pd.read_json("data.json")

print("DataFrame generated from Index Oriented JSON file:")
print(df)

輸出:

DataFrame generated from Index Oriented JSON file:
         0      1     2
Name  Anil  Biraj  Apil
Age     23     25    26

它將從 data.json 檔案中建立一個 DataFrame,頂層鍵在 DataFrame 中表示為列。

將面向值的 JSON 檔案載入到 Pandas DataFrame 中

[
    ["Anil", 23],
    ["Biraj", 25],
    ["Apil", 26]
]

這是一個面向值的 JSON 檔案的例子,陣列中的每個元素代表每一行的值。

import pandas as pd

df=pd.read_json("data.json")

print("DataFrame generated from Value Oriented JSON file:")
print(df)

輸出:

DataFrame generated from Value Oriented JSON file:
       0   1
0   Anil  23
1  Biraj  25
2   Apil  26

它將從 data.json 檔案中建立一個 DataFrame,JSON 檔案中陣列的每個元素將在 DataFrame 中表示為一行。

將面向列的 JSON 檔案載入到 Pandas DataFrame 中

{
    "Name": {
        "1": "Anil",
        "2": "Biraj",
        "3": "Apil"
    },
    "Age": {
        "1": 23,
        "2": 25,
        "3": 28
    }
}

它是一個面向列的 JSON 檔案頂層索引的例子,代表資料的列名。

import pandas as pd

df=pd.read_json("data.json")

print("DataFrame generated from  Column Oriented JSON file:")
print(df)

輸出:

DataFrame generated from Column Oriented JSON file:
    Name  Age
1   Anil   23
2  Biraj   25
3   Apil   28

它將從 data.json 檔案中建立一個 DataFrame,JSON 檔案的頂層索引將作為 DataFrame 中的列名。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相關文章 - Pandas DataFrame