У меня есть датафрейм с 12 столбцами.Я хотел бы извлечь строки столбца в зависимости от значений другого столбца.
Пример моего фрейма данных
order_id order_type order_items
45 Lunch [('Burger', 5), ('Fries', 6)]
12 Dinner [('Shrimp', 10), ('Fish&Chips', 7)]
44 Lunch [('Salad', 9), ('Steak', 9)]
23 Breakfast [('Coffee', 2), ('Eggs', 3)]
Я бы хотел извлечь меню завтрака, обеда и ужина с помощьюизвлечение первого элемента каждого tuple
.и извлекаем количество заказов из следующего элемента в кортеже.
Каждый элемент является строкой типа в соответствии с этой строкой кода
print(type(df['order_items'][0]))
>> <class 'str'>
Я пытался применить фильтр для извлечения завтракаmenu:
BreakfastLst=df.loc[df['order_type'] == 'Breakfast']['order_items']
, но вывод выглядит следующим образом, и я не могу использовать for loop
для перебора списков и доступа к кортежам.
2 [('Coffee', 4), ('Eggs', 7)]
7 [('Coffee', 2), ('Eggs', 3)]
8 [('Cereal', 7), ('Pancake', 8), ('Coffee', 4),...
9 [('Cereal', 3), ('Eggs', 1), ('Coffee', 1), ('...
Я также пыталсяпреобразуйте в lists
:
orderTypeLst = df(['order_type'])['order_items'].apply(list)
и затем извлеките списки, выполнив это:
breakFast=orderTypeLst['Breakfast']
lunch=orderTypeLst['Lunch']
dinner=orderTypeLst['Dinner']
, но на выходе получится строка.И я не могу повторить это тоже.
["[('Coffee', 4), ('Eggs', 7)]",
"[('Coffee', 2), ('Eggs', 3)]",
"[('Cereal', 7), ('Pancake', 8), ('Coffee', 4), ('Eggs', 8)]"]
Что касается dictionaries
, я попробовал следующее, но вывод дублируется:
pd.Series(outlierFile.order_type.values,index=outlierFile.order_items).to_dict()
образец вывода
"[('Fries', 1), ('Steak', 6), ('Salad', 8), ('Chicken', 10)]": 'Lunch',
"[('Cereal', 6), ('Pancake', 8), ('Eggs', 3)]": 'Breakfast',
"[('Shrimp', 9), ('Salmon', 9)]": 'Dinner',
"[('Pancake', 3), ('Coffee', 5)]": 'Breakfast',
"[('Eggs', 1), ('Pancake', 1), ('Coffee', 5), ('Cereal', 5)]": 'Breakfast'
мой желаемый вывод - эточистая версия каждого order_type (список или словарь), чтобы я мог перебирать кортежи и извлекать необходимые элементы.
Любой ввод будет полезен. Спасибо,