在 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