Преобразование списка словарей в Dataframe

у меня есть список словарей, как это:

[{'points': 50, 'time': '5:00', 'year': 2010}, 
{'points': 25, 'time': '6:00', 'month': "february"}, 
{'points':90, 'time': '9:00', 'month': 'january'}, 
{'points_h1':20, 'month': 'june'}]

и я хочу превратить это в панд DataFrame такой:

      month  points  points_h1  time  year
0       NaN      50        NaN  5:00  2010
1  february      25        NaN  6:00   NaN
2   january      90        NaN  9:00   NaN
3      june     NaN         20   NaN   NaN

Примечание: порядок столбцов не имеет значения.

В конечном счете, цель состоит в том, чтобы записать это в текстовый файл, и это кажется лучшим решением, которое я мог найти. Как я могу превратить список словарей в фрейм данных pandas, как показано выше?

3 ответов


предположим d это ваш список диктов, просто:

pd.DataFrame(d)

в pandas 16.2, я должен был сделать pd.DataFrame.from_records(d) чтобы заставить это работать.


вы также можете использовать pd.DataFrame.from_dict(d) as:

In [8]: d = [{'points': 50, 'time': '5:00', 'year': 2010}, 
   ...: {'points': 25, 'time': '6:00', 'month': "february"}, 
   ...: {'points':90, 'time': '9:00', 'month': 'january'}, 
   ...: {'points_h1':20, 'month': 'june'}]

In [12]: pd.DataFrame.from_dict(d)
Out[12]: 
      month  points  points_h1  time    year
0       NaN    50.0        NaN  5:00  2010.0
1  february    25.0        NaN  6:00     NaN
2   january    90.0        NaN  9:00     NaN
3      june     NaN       20.0   NaN     NaN