ich einen Datenrahmen haben, die wie folgt aussieht:Pandas groupby mit bin zählt
+----------+---------+-------+
| username | post_id | views |
+----------+---------+-------+
| john | 1 | 3 |
| john | 2 | 23 |
| john | 3 | 44 |
| john | 4 | 82 |
| jane | 7 | 5 |
| jane | 8 | 25 |
| jane | 9 | 46 |
| jane | 10 | 56 |
+----------+---------+-------+
und ich möchte es verwandeln Ansichten zu zählen, die wie folgt auf bestimmte Fächer gehören:
+------+------+-------+-------+--------+
| | 1-10 | 11-25 | 25-50 | 51-100 |
+------+------+-------+-------+--------+
| john | 1 | 1 | 1 | 1 |
| jane | 1 | 1 | 1 | 1 |
+------+------+-------+-------+--------+
I versucht:
bins = [1, 10, 25, 50, 100]
groups = df.groupby(pd.cut(df.views, bins))
groups.username.count()
Aber es gibt nur Aggregat zählt und nicht von Benutzern gezählt. Wie kann ich die Anzahl der Behälter nach Benutzer berechnen?
Die Gesamtzahlen (meine realen Daten verwendet wird) sieht wie folgt aus:
impressions
(2500, 5000] 2332
(5000, 10000] 1118
(10000, 50000] 570
(50000, 10000000] 14
Name: username, dtype: int64