登录
首页精彩阅读Pandas结构化json数据
Pandas结构化json数据
2024-01-03
收藏

Pandas json_normalize 函数使用教程介绍

json_normalize 是 Pandas 库中一个强大的函数,用于将嵌套的 JSON 数据规范化成平面的 DataFrame。这对于处理包含嵌套结构的 JSON 数据非常有用,使其更容易分析和操作。在本教程中,我们将深入介绍 json_normalize 函数,并通过通俗的例子帮助你理解其参数的作用。

安装 Pandas

首先,确保你已经安装了 Pandas。如果没有安装,可以使用以下命令进行安装:pip install pandas使用 json_normalize基本用法让我们从最基本的用法开始。假设有如下嵌套的 JSON 数据:{                
  
"name":"John",                
  "age":30,                
  "address":{                
    
"city":"New York",                
    "zip":"10001"                
  
}                
}

  "name":"John",                
  "age":30,                
  "address":{                
    
"city":"New York",                
    "zip":"10001"                
  
}                

}

现在我们将使用 json_normalize 将其规范化成 DataFrameimport pandas as pd                
               
# 嵌套的 JSON 数据                
data 
= {                
    
"name""John",                
    "age"30,                
    "address": {                
        
"city""New York",                
        "zip""10001"                
    }                
}                
               
# 使用 json_normalize 规范化                
df 
= pd.json_normalize(data)                
               
# 打印 DataFrame                
print(df)    

               
# 嵌套的 JSON 数据                
data 
= {                
    
"name""John",                
    "age"30,                
    "address": {                
        
"city""New York",                
        "zip""10001"                
    }                
}                
               
# 使用 json_normalize 规范化                
df 
= pd.json_normalize(data)                
               
# 打印 DataFrame                

print(df)    运行上述代码,你将得到一个包含规范化数据的 DataFrame处理嵌套数组json_normalize 也可以处理包含嵌套数组的 JSON 数据。

考虑以下 JSON:{                
  
"name":"John",                
  "age":30,                
  "skills":[                
    
{"language":"Python", "level":"Intermediate"},                
    {"language":"JavaScript", "level":"Advanced"}                
  
]                
}

  "name":"John",                
  "age":30,                
  "skills":[                
    
{"language":"Python", "level":"Intermediate"},                
    {"language":"JavaScript", "level":"Advanced"}                
  
]                

}

我们可以使用 record_path 参数指定要规范化的嵌套数组:# 嵌套数组的 JSON 数据                
data_with_array 
= {                
    
"name""John",                
    "age"30,                
    "skills": [                
        {
"language""Python""level""Intermediate"},                
        {
"language""JavaScript""level""Advanced"}                
    ]                
}                
               
# 使用 json_normalize 规范化,指定嵌套数组路径                
df_with_array 
= pd.json_normalize(data_with_array, record_path='skills')                
               
# 打印 DataFrame                

data_with_array = {                
    
"name""John",                
    "age"30,                
    "skills": [                
        {
"language""Python""level""Intermediate"},                
        {
"language""JavaScript""level""Advanced"}                
    ]                
}                
               
# 使用 json_normalize 规范化,指定嵌套数组路径                
df_with_array 
= pd.json_normalize(data_with_array, record_path='skills')                
               
# 打印 DataFrame                

print(df_with_array)

通过指定 record_path 参数,我们将嵌套数组规范化成了 DataFrame处理嵌套 JSONjson_normalize 还支持处理嵌套的 JSON 结构。

考虑以下 JSON:    {                
  
"name":"John",                
  "age":30,                
  "contact":{                
    
"email":"john@example.com",                
    "phone":{                
      
"home":"123-456-7890",                
      "work":"987-654-3210"                
    
}                
  
}                

  "name":"John",                
  "age":30,                
  "contact":{                
    
"email":"john@example.com",                
    "phone":{                
      
"home":"123-456-7890",                
      "work":"987-654-3210"                
    
}                
  
}                

}

我们可以使用 sep 参数指定嵌套层次的分隔符:# 嵌套 JSON 数据                
data_nested 
= {                
    
"name""John",                
    "age"30,                
    "contact": {                
        
"email""john@example.com",                
        "phone": {                
            
"home""123-456-7890",                
            "work""987-654-3210"                
        }                
    }                
}                
               
# 使用 json_normalize 规范化,指定嵌套层次分隔符                
df_nested 
= pd.json_normalize(data_nested, sep='_')                
               
# 打印 DataFrame                
print(df_nested)

data_nested = {                
    
"name""John",                
    "age"30,                
    "contact": {                
        
"email""john@example.com",                
        "phone": {                
            
"home""123-456-7890",                
            "work""987-654-3210"                
        }                
    }                
}                
               
# 使用 json_normalize 规范化,指定嵌套层次分隔符                
df_nested 
= pd.json_normalize(data_nested, sep='_')                
               
# 打印 DataFrame                

print(df_nested)在这个例子中,我们通过指定 sep 参数,将嵌套的 JSON 结构规范化成了 DataFrame

总结

通过本教程,你学习了如何使用 Pandas 中的 json_normalize 函数将嵌套的 JSON 数据规范化成易于处理的 DataFrame。我们介绍了基本用法以及如何处理嵌套数组和嵌套 JSON 结构。希望这些通俗易懂的例子能够帮助你更好地理解 json_normalize 函数的使用。    

数据分析咨询请扫描二维码

客服在线
立即咨询