Hier ist meine DatenrahmenZählwerte Pandas GROUPBY
data = {'Date' : ['08/20/10','08/20/10','08/20/10','08/21/10','08/22/10','08/24/10','08/25/10','08/26/10'] , 'Receipt' : [10001,10001,10002,10002,10003,10004,10004,10004],
'Product' : ['xx1','xx2','yy1','fff4','gggg4','fsf4','gggh5','hhhg6']}
dfTest = pd.DataFrame(data)
dfTest
Diese Verwendung produzieren:
Date Product Receipt
0 08/20/10 xx1 10001
1 08/20/10 xx2 10001
2 08/20/10 yy1 10002
3 08/21/10 fff4 10002
4 08/22/10 gggg4 10003
5 08/24/10 fsf4 10004
6 08/25/10 gggh5 10004
7 08/26/10 hhhg6 10004
ich die Anzahl der eindeutigen Belege pro Tag erhalten möchten.
Heres, was ich tat:
dfTest.groupby(['Date','Receipt']).count()
Product
Date Receipt
08/20/10 10001 2
10002 1
08/21/10 10002 1
08/22/10 10003 1
08/24/10 10004 1
08/25/10 10004 1
08/26/10 10004 1
Ich bin mit dieser Art von Index Präsentation verwirrt, so setze ich es.
df2 = dfTest.groupby(['Date','Receipt']).count().reset_index()
df2
Date Receipt Product
0 08/20/10 10001 2
1 08/20/10 10002 1
2 08/21/10 10002 1
3 08/22/10 10003 1
4 08/24/10 10004 1
5 08/25/10 10004 1
6 08/26/10 10004 1
Jetzt habe ich es nach Datum gruppiert und dann nur den Belegzähler angezeigt.
df2.groupby ([ 'Date']) [ 'Quittung']. Zählen()
Date
08/20/10 2
08/21/10 1
08/22/10 1
08/24/10 1
08/25/10 1
08/26/10 1
Name: Receipt, dtype: int64
Dort bekam ich die Anzahl der eindeutigen Belege pro Tag. Ich denke, dass die Art und Weise, wie ich meine Lösung gefunden habe, etwas grob ist. Gibt es einen besseren Weg, um das zu tun, was ich vorhabe?