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
是需要保留的列。这里将 name
和 age
列也保留了下来,因为它们属于扁平化前的顶层结构。
步骤三:转换成 DataFrame
最后,我们可以将扁平化的数据转换成 Pandas DataFrame。
# 将扁平化后的数据转换成 DataFrame
df = pd.DataFrame(flat_data)
对于 DataFrame 来说,我们可以对其中的数据进行排序、分组、聚合等数据分析操作。
总结
通过以上步骤,我们成功将扁平化嵌套的 JSON 数据转换成 DataFrame,为后续的数据分析过程做好了准备。Pandas 提供的 pandas.json_normalize() 函数是解决 JSON 数据中多层嵌套结构的利器,需要多多利用。