使用Pandas 解析JSON数据集

185 阅读2分钟

 Pandas 提供了用于解析 JSON 数据并将其转换为结构化 DataFrame 以便进行分析的工具

import pandas as pd
import requests

读取JSON文件

        在pandas中,我们使用read_json函数读取JSON文件或URL。在下面的代码中,path_or_buf是JSON文件的文件路径或网页URL。

pd.read_json(path_or_buf)

创建一个DataFrame并将其转换为JSON

        如果你没有JSON文件,那么创建一个小的DataFrame。

  • • orient='split':分隔列、索引和数据。
  • • orient='index':将每一行显示为带有其索引的键值对 
df = pd.DataFrame([['a', 'b'], ['c', 'd']],
                  index=['row 1', 'row 2'],
                  columns=['col 1', 'col 2'])

print(df.to_json(orient='split')) 
print(df.to_json(orient='index'))

 ​编辑

从网络数据中读取JSON文件 

        你可以使用requests库从在线源获取JSON数据,然后将其转换为DataFrame。

  • • requests.get(url)从URL获取数据。
  • • response.json()将响应转换为Python字典/列表。
  • • json_normalize()将嵌套的JSON转换为扁平表。 
import pandas as pd
import requests

url = 'https://jsonplaceholder.typicode.com/posts'
response = requests.get(url)

data = pd.json_normalize(response.json())
data.head()

 ​编辑

 在Pandas中处理嵌套JSON

        有时,JSON数据会有多层结构,比如列表或字典嵌套在其他字典中,这种情况就称为嵌套JSON。要将深度嵌套的JSON转换为表格,可以使用pandas库中的json_normalize()函数,这样能更方便地以表格形式进行分析或处理。

  • • json.load(f):将原始JSON加载到Python字典中。
  • • json_normalize(d['programs']):提取programs键下的列表,并将其展开为列。 
import json  
import pandas as pd  
from pandas import json_normalize  

with open('/content/raw_nyc_phil.json') as f:
    d = json.load(f)

nycphil = json_normalize(d['programs'])
nycphil.head(3)

​编辑