我有我正在使用的用例 -
- 方法 1:Pandas json_normalize 将字典列表转换为数据框(每个字典循环。),然后选择所需的列。
- 方法 2:可以完成的另一种方法是创建所选列/键的字典(通过循环遍历每个字典的主列表的子集),然后应用 json_normalize。
我试图了解在可扩展性方面哪种方法是正确的。提前致谢。
示例来自 -文档
data = [{'state': 'Florida',
... 'shortname': 'FL',
... 'info': {
... 'governor': 'Rick Scott'
... },
... 'counties': [{'name': 'Dade', 'population': 12345},
... {'name': 'Broward', 'population': 40000},
... {'name': 'Palm Beach', 'population': 60000}]},
... {'state': 'Ohio',
... 'shortname': 'OH',
... 'info': {
... 'governor': 'John Kasich'
... },
... 'counties': [{'name': 'Summit', 'population': 1234},
... {'name': 'Cuyahoga', 'population': 1337}]}]
%timeit pd.json_normalize(data)[['state','shortname']]
每个循环 777 µs ± 24.7 µs(7 次运行的平均值 ± 标准偏差,每次 1000 个循环)
data_list =[]
for d in data:
data_dict = {}
data_dict['state'] = d.get('state')
data_dict['shortname'] = d.get('shortname')
data_list.append(data_dict)
print (pd.json_normalize(data_list))
笔记:
- 从 API 检索数据
- DataFrame 所需的列接近 40