在 Pandas 中載入 JSON 檔案

Suraj Joshi 2023年1月30日
  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 中的列名。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

相關文章 - Pandas DataFrame