Наличие информационного кадра, состоящего из человека и порядка ...
person order elements
Alice [drink, snack, salad, fish, dessert] 5
Tom [drink, snack] 2
John [drink, snack, soup, chicken] 4
Mila [drink, snack, soup] 3
Я хочу знать, что клиенты получали в качестве основного блюда. Таким образом, я хочу добавить еще один столбец [main_meal], чтобы это был мой df.
person order elements main_meal
Alice [drink, snack, salad, fish, dessert] 5 fish
Tom [drink, snack] 2 none
John [drink, snack, soup, chicken] 4 chicken
Mila [drink, snack, soup] 3 none
Правило состоит в том, что если клиент заказал 4 или более блюд, это означает, что 4-й элемент всегда является основным блюдом, поэтому я хочу извлечь 4-й элемент из списка в столбце заказа. Если он содержит менее 4 элементов, присвойте main_meal значение none. Мой код:
df['main_meal'] = ''
if df['elements'] >= 4:
df['main_meal'] = df.order[3]
else:
df['main_meal'] = 'none'
Не работает:
ValueError Traceback (most recent call last)
<ipython-input-100-39b7809cc669> in <module>()
1 df['main_meal'] = ''
2 df.head(5)
----> 3 if df['elements'] >= 4:
4 df['main_meal'] = df.order[3]
5 else:
~\Anaconda\lib\site-packages\pandas\core\generic.py in __nonzero__(self)
1571 raise ValueError("The truth value of a {0} is ambiguous. "
1572 "Use a.empty, a.bool(), a.item(), a.any() or
a.all()."
-> 1573 .format(self.__class__.__name__))
1574
1575 __bool__ = __nonzero__
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Что не так с моим кодом?