Pandas json_normalize, а затем выбор столбцов против создания словаря и последующего применения json_normalize

У меня есть вариант использования, в котором я использую -

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

0 ответов

Другие вопросы по тегам