CDA数据分析师

CDA数据分析师

考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

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 将其规范化成 DataFrame:import 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"}                
  ]                
}
我们可以使用 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                

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 函数的使用。    

完 谢谢观看