Pandas json_normalize, а затем выбор столбцов против создания словаря и последующего применения json_normalize
У меня есть вариант использования, в котором я использую -
- Подход 1: Pandas json_normalize для преобразования списка словарей в фрейм данных (цикл для каждого dict.), А затем выбор необходимых столбцов.
- Подход 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 мкс ± 24,7 мкс на цикл (среднее ± стандартное отклонение из 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