将 JSON 字符串加载到 Pandas DataFrame 中

pythonpandasjsonprogramming更新于 2024/9/17 21:00:17

简介

理解、净化和操纵数据以获得深刻的知识并做出明智的判断是数据科学和机器学习的艺术。Python 的强大模块(如 Pandas 和 json)使这项工作变得更加简单。JSON 代表 JavaScript 对象表示法,是一种广受欢迎的 Web 数据交换标准。另一方面,Pandas DataFrames 提供了一种在 Python 中存储和修改表格数据的有效结构。

本文提供了一个详尽的教程,其中包含大量有用的示例,介绍如何将 JSON 字符串导入 Pandas DataFrame。

先决条件

确保您的 Python 环境已安装 Pandas 和 json 库。使用 pip,您可以安装它们:

pip install pandas

将 JSON 字符串加载到 Pandas DataFrame 中

示例 1:加载简单 JSON 字符串

让我们从一个简单的 JSON 字符串开始。 JSON 文本将首先使用 Python 中的 json 模块转换为 Python 字典,然后加载到 DataFrame 中。

import pandas as pd
import json

# JSON 字符串
json_string = '{"name": "John", "age": 30, "city": "New York"}'

# 将 JSON 字符串转换为 Python 字典
data = json.loads(json_string)

# 将字典转换为 DataFrame
df = pd.DataFrame(data, index=[0])
print(df)

输出

name age city
0 John 30 New York

示例 2:加载包含多个对象的 JSON 字符串

现在让我们处理包含许多对象的 JSON 字符串。在这种情况下,DataFrame 中的每一行都对应于 JSON 文本中的一个对象。

import pandas as pd
import json

# JSON 字符串
json_string = '[{"name": "John", "age": 30, "city": "New York"},{"name": "Jane", "age": 25, "city": "Chicago"}]'

# 将 JSON 字符串转换为 Python 字典列表
data = json.loads(json_string)

# 将字典列表转换为 DataFrame
df = pd.DataFrame(data)
print(df)

输出

   name  age      city
0  John   30  New York
1  Jane   25   Chicago

示例 3:加载嵌套 JSON 字符串

嵌套 JSON 字符串需要稍微复杂一些的处理。可以将每个嵌套对象视为一个单独的 DataFrame,可以与主 DataFrame 组合。

import pandas as pd
import json

# 嵌套 JSON 字符串
json_string = '{"employee":{"name": "John", "age": 30, "city": "New York"}, "company":{"name": "ABC Corp", "location": "USA"}}'

# 将 JSON 字符串转换为 Python 字典
data = json.loads(json_string)

# 将每个嵌套字典转换为 DataFrame 并合并
df_employee = pd.DataFrame(data['employee'], index=[0])
df_company = pd.DataFrame(data['company'], index=[0])
df = pd.concat([df_employee, df_company], axis=1)
print(df)

输出

   name   age      city     name     location
0  John   30     New York   ABC Corp      USA

由于它存在于两个嵌套字典中,因此"name"列在此 DataFrame 中出现两次。请确保正确重命名列以避免混淆。

结论

在 Python 中处理 Web 数据时,一个常见的操作是将 JSON 字符串加载到 Pandas DataFrame 中。即使是复杂的 JSON 字符串也可以有效地加载到 DataFrame 中,以便使用 Pandas 和 json 包进行额外的数据分析和操作。

如果您理解如何将 JSON 字符串加载到 DataFrame 中,您将拥有挖掘 JSON 数据以获得洞察力的坚实基础。您可以利用这种专业知识更有效地加载、处理和可视化数据,从而提高您作为数据科学家、数据分析师或机器学习工程师的工作效率。这些能力对于许多数据驱动的应用程序和项目都很有用,因为 JSON 是 Web 上数据传输的全球标准。


有用资源