【发布时间】:2016-07-08 14:16:03
【问题描述】:
这可能与 Pandas: Filtering pivot table rows where count is fewer than specified value 重复,但我不断收到 NaN 错误
我有一个包含订单、订单价值、客户 ID 和日期的数据框 (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/False的列表
sum
guest_id
4813 True
6517 True
7876 False
为什么True/false会返回NaN?
这个例子Filtering based on the "rows" data after creating a pivot table in python pandas 似乎只过滤索引而不是值。
(groupby level = 0 也不会产生正确的结果)
【问题讨论】:
-
是不是因为你的
daily order_value少了一个下划线? -
更新了您的编辑和建议@johnE,感谢您抽出宝贵时间
-
对,但我的意思是在最上面,有代码来构造原始 df(或一个小的近似值)是很好的。否则没有人可以测试他们的代码以查看它是否有效,除非他们创建一个示例数据框,该数据框可能与您遇到的问题不同。
标签: python pandas pivot-table