Это может быть дубликатом Pandas: Filtering pivot table rows where count is fewer than specified value, но я получаю ошибку NaNПанды фильтра сводной таблицы по значению
У меня есть кадр данных (Df) заказов, стоимости заказов, идентификатор клиента и даты;
id, date, order_count, daily_order_value
Я хочу просмотреть общие расходы гостей, которые заказывают более одного раза, три и десять раз по продолжительности.
Pnon_merch = pivot_table(dffilter, index =["guest_id"]
, values=['ct_order','order_value']
,aggfunc= {'ct_order':np.sum,'order_value': [np.sum,np.mean]})
печати Pnon_merch
ct_order order_value
sum mean sum
guest_id
4813 1 2020.6400 2020.64
создает таблицу, но когда я пытаюсь
Pnon_merch_is1 = Pnon_merch[Pnon_merch["ct_order"]==1]
Я получаю список NaN,
ct_order order_value
sum mean sum
guest_id
4813 NaN NaN NaN
truefalse = [Pnon_merch["ct_order"]==1]
дает список True/Неверно
[ sum
guest_id
4813 True
6517 True
7876 False
Почему истинный/ложный возврат NaN?
Этот пример Filtering based on the "rows" data after creating a pivot table in python pandas, по-видимому, фильтрует только по индексу NOT значения.
(уровень GroupBy = 0 не дает правильные результаты либо) благодаря
Это потому, что в вашем 'daily order_value' отсутствует символ подчеркивания? – Jarad
обновлен с вашими изменениями и предложениями @johnE, спасибо, что нашли время – conr404
Правильно, но я имею в виду, что на самом верху неплохо иметь код для создания исходного df (или небольшого приближения). В противном случае никто не сможет проверить свой код, чтобы убедиться, что он работает, если они не создают образец данных, который может не иметь той же проблемы, что и у вас. – JohnE