Dies könnte ein Duplikat Pandas: Filtering pivot table rows where count is fewer than specified value sein, aber ich erhalte einen NaN FehlerPandas Filter Pivot-Tabelle nach Wert
ich einen Datenrahmen (df) von Aufträgen habe, um Werte, Kunden-ID und Daten;
Ich möchte die Gesamtausgaben der Gäste, die mehr als einmal, drei und zehn Mal über die Dauer bestellen.
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 Druck
ct_order order_value
sum mean sum
guest_id
4813 1 2020.6400 2020.64
erzeugt eine Tabelle, aber wenn ich
Pnon_merch_is1 = Pnon_merch[Pnon_merch["ct_order"]==1]
versuchen erhalte ich eine Liste von NaN,
ct_order order_value
sum mean sum
guest_id
4813 NaN NaN NaN
truefalse = [Pnon_merch["ct_order"]==1]
gibt eine Liste von True/Falsch
[ sum
guest_id
4813 True
6517 True
7876 False
Warum kann das Wahr/Falsche NaN zurückgeben?
Dieses Beispiel Filtering based on the "rows" data after creating a pivot table in python pandas scheint nur auf den Index nicht die Werte zu filtern.
(groupby level = 0 nicht nachgibt, die entweder korrekte Ergebnisse) dank
Liegt es daran, dass in Ihrem 'daily order_value' ein Unterstrich fehlt? – Jarad
aktualisiert mit Ihren Änderungen und Anregungen @johnE, Danke für die Zeit nehmen – conr404
Richtig, aber ich meine ganz oben, es ist schön, Code zu haben, um das Original-df (oder eine kleine Annäherung) zu konstruieren. Andernfalls kann niemand seinen Code testen, um festzustellen, ob er funktioniert, es sei denn, er erstellt einen Beispieldatenrahmen, der möglicherweise nicht das gleiche Problem aufweist wie Sie. – JohnE