Pandas. Как отфильтровать таблицу по условию, пока ей не присвоена переменная
Подсмотрел где-то такой стиль написания кода как "Chaining" (когда не присваиваешь каждому шагу новую переменную, а пишешь как-будто сплошным рецептом). Так вот столкнулся с проблемой. Сразу оговорюсь, понятно, что можно решить много какими другими способами, но интересно именно понять такой момент.
Есть две таблицы, я с ними делаю некие манипуляции:
v = (
orders
.astype({'order_date': 'datetime64'})
.loc[(orders['order_date']>='2019-02-01') & (orders['order_date']<='2019-05-01'), ['cust_id', 'order_date', 'total_order_cost']]
.merge(customers.loc[:,['id', 'first_name']], left_on='cust_id', right_on='id', how='inner')
.groupby(['cust_id', 'first_name', 'order_date'], as_index=False).agg(max_cost=('total_order_cost', 'sum'))
#.loc[orders['max_cost']==275]
#.apply(lambda x: x.loc[:])
#.nlargest(1, ['max_cost'])
#.loc[:, ['first_name', 'order_date', 'max_cost']]
)
v
И на выходе пока что имею такое:
И моя задача была отобрать строки, в которых max_cost максимальное, и это я решил через nlargest. Но предположим, задача стояла бы отобрать тех у кого max_cost = 80. Пытался через .loc[orders['max_cost']==80], но orders это стартовое значение, в нем еще даже нет такого столбца. Какое имя в данный момент имеет мой датасет? Также пробовал через apply(lambda x: x['max_cost']==80), но так не сработало.