在pandas中,将嵌套的JSON数据扁平化的最有效方法是使用json_normalize()
函数。该函数可以将嵌套的JSON数据转换为扁平化的数据帧。
json_normalize()
函数的语法如下:
pandas.json_normalize(data, record_path=None, meta=None, meta_prefix=None, record_prefix=None, errors='raise')
参数说明:
data
:要转换的JSON数据。record_path
:指定要扁平化的JSON数据的路径。meta
:指定要保留的元数据列。meta_prefix
:指定元数据列的前缀。record_prefix
:指定记录列的前缀。errors
:指定错误处理方式。使用json_normalize()
函数可以将嵌套的JSON数据转换为扁平化的数据帧,便于后续的数据处理和分析。
以下是一个示例代码:
import pandas as pd
import json
# 嵌套的JSON数据
data = [
{
"id": 1,
"name": "John",
"address": {
"street": "123 Main St",
"city": "New York",
"state": "NY"
},
"scores": [90, 85, 95]
},
{
"id": 2,
"name": "Jane",
"address": {
"street": "456 Elm St",
"city": "Los Angeles",
"state": "CA"
},
"scores": [95, 80, 90]
}
]
# 将JSON数据转换为数据帧
df = pd.json_normalize(data, 'scores', ['id', 'name', ['address', 'street'], ['address', 'city'], ['address', 'state']])
print(df)
输出结果:
0 id name address.street address.city address.state
0 90 1 John 123 Main St New York NY
1 85 1 John 123 Main St New York NY
2 95 1 John 123 Main St New York NY
3 95 2 Jane 456 Elm St Los Angeles CA
4 80 2 Jane 456 Elm St Los Angeles CA
5 90 2 Jane 456 Elm St Los Angeles CA
在上述示例中,通过指定record_path
为'scores',将嵌套的'scores'字段扁平化为数据帧的一列。同时,通过指定meta
参数,保留了'id'、'name'、'address.street'、'address.city'和'address.state'这些元数据列。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云