Создать pandas фрейм данных из словаря словарей - PullRequest
1 голос
/ 17 апреля 2020

У меня есть словарь словарей, подобный следующему:

data_dict = {
    'first_entry': {'a': 345, 'b': 8484}, 
    'second_entry': {'a': 3423, 'b': 848}
}

Я хотел бы создать кадр данных всех этих значений следующим образом:

pd.DataFrame(
    [list(data_dict[key].values()) for key in data_dict.keys()],
    columns = list(data_dict[list(data_dict.keys())[0]].keys())) 

I'm немного обеспокоен подходом, используемым здесь в отношении доступа к ключам и тому подобному.

Примечание - в приведенных выше значениях first_entry и second_entry не являются надежными, но значения a и b надежны. В реальных данных у меня есть ~ 500 или около того вложенных словарей (поэтому first_entry ... five_hundredth_entry с использованием приведенного выше синтаксиса).

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

IIU C

pd.DataFrame(d).T.reset_index(drop=True)
      a     b
0   345  8484
1  3423   848
1 голос
/ 17 апреля 2020

Вам нужно только DataFrame.from_dict с orient='index'. При желании мы можем сбросить индекс в конце.

new_df = pd.DataFrame.from_dict(data_dict, orient='index').reset_index(drop=True)
print(new_df)

Выход

      a     b
0   345  8484
1  3423   848
...