Извлечение информации из вложенных словарей в другом словаре - PullRequest
0 голосов
/ 02 сентября 2018

набор данных содержит 25 столбцов по 500 строк, один из столбцов - это «orderItems», которые содержат вложенные словари, все ключи «orderItems» содержат 1–15 словарей. взять одну случайную строку, например:

dataset.orderItems[691581]

Результат:

[{'product': 10152, 'price': 78.76, 'quantity': 1.0},
 {'product': 3584, 'price': 20.9, 'quantity': 1.0},
 {'product': 20308, 'price': 9.9, 'quantity': 1.0},
 {'product': 7619, 'price': 13.9, 'quantity': 1.0},
 {'product': 3795, 'price': 15.9, 'quantity': 1.0},
 {'product': 6504, 'price': 18.9, 'quantity': 2.0},
 {'product': 13720, 'price': 75.9, 'quantity': 1.0},
 {'product': 18419, 'price': 31.9, 'quantity': 1.0}]

Хотите создать 3 столбца: «продукт», «цена» и «количество», чтобы он соответствовал всей информации всех словарей в этих столбцах. Пример выше будет плюс 8 строк, извлеченных из одного значения "orderItems". Информация о цене, продукте и количестве, извлеченная из «dataset.orderItems [691581]», будет разделена в этих 3 столбцах каждый на свой соответствующий столбец. Помните, что у одних ключей есть 1 словарь, у других - 15 (макс)

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

Попробуйте следующее:

list_df = []
for i, row in enumerate(df.values):
   df_values = df.loc[i,"orderitems"]
   for i, row in enumerate(df_values): 
        list_df.append(pd.DataFrame([row]))
 df_values_final=pd.concat(list_df)
0 голосов
/ 02 сентября 2018

Это вернул список для вашего номера строки. Вы можете обработать это так:

for dict_current in dataset.orderItems[691581]:
    i_prod_num = dict_current["product"]
    i_price = dict_current["price"]
    fl_quantity = dict_current["quantity"]

Что вы будете делать дальше, зависит от того, что вы хотите сделать с этими значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...