Python Pandas – 扁平化嵌套的JSON

  • Post category:Python

Python Pandas – 扁平化嵌套的JSON

背景

在进行数据分析时,我们常常会需要处理 JSON 数据。但是,JSON 数据中可能存在多层的嵌套结构,这就使得我们难以以表格的形式进行数据处理。Pandas 提供了一种方便的方法,可以将扁平化的 JSON 转换成 DataFrame。

代码实现

步骤一:读取 JSON 数据

我们首先需要读取包含 JSON 数据的文件,使用 pandas.read_json() 函数读取即可。

import pandas as pd

# 读取 JSON 数据
with open('data.json') as f:
    data = json.load(f)
df = pd.read_json(json.dumps(data['result']))

步骤二:扁平化 JSON 数据

接下来,我们需要将嵌套的 JSON 数据扁平化,以便转换成 DataFrame。我们可以使用 pandas.json_normalize() 函数来实现。

from pandas.io.json import json_normalize

# 扁平化嵌套的 JSON 数据
flat_data = json_normalize(data['result'], record_path=['data'], meta=['name', 'age'])

此时,我们已经得到了扁平化后的数据。其中,参数 record_path 是需要扁平化的路径,参数 meta 是需要保留的列。这里将 nameage 列也保留了下来,因为它们属于扁平化前的顶层结构。

步骤三:转换成 DataFrame

最后,我们可以将扁平化的数据转换成 Pandas DataFrame。

# 将扁平化后的数据转换成 DataFrame
df = pd.DataFrame(flat_data)

对于 DataFrame 来说,我们可以对其中的数据进行排序、分组、聚合等数据分析操作。

总结

通过以上步骤,我们成功将扁平化嵌套的 JSON 数据转换成 DataFrame,为后续的数据分析过程做好了准备。Pandas 提供的 pandas.json_normalize() 函数是解决 JSON 数据中多层嵌套结构的利器,需要多多利用。