ich einen Datenrahmen mit einem Zeitstempel Spaltegroupby Datenrahmen mit neuen Spalte die Gruppe darstellt
d1=DataFrame({'a':[datetime(2015,1,1,20,2,1),datetime(2015,1,1,20,14,58),
datetime(2015,1,1,20,17,5),datetime(2015,1,1,20,31,5),
datetime(2015,1,1,20,34,28),datetime(2015,1,1,20,37,51),datetime(2015,1,1,20,41,19),
datetime(2015,1,1,20,49,4),datetime(2015,1,1,20,59,21)], 'b':[2,4,26,22,45,3,8,121,34]})
a b
0 2015-01-01 20:02:01 2
1 2015-01-01 20:14:58 4
2 2015-01-01 20:17:05 26
3 2015-01-01 20:31:05 22
4 2015-01-01 20:34:28 45
5 2015-01-01 20:37:51 3
6 2015-01-01 20:41:19 8
7 2015-01-01 20:49:04 121
8 2015-01-01 20:59:21 34
Ich kann Gruppe von Intervallen von 15 Minuten durch diese Operationen zu tun
d2=d1.set_index('a')
d3=d2.groupby(pd.TimeGrouper('15Min'))
Die Anzahl der Zeilen, die von Gruppe gefunden von
d3.size()
a
2015-01-01 20:00:00 2
2015-01-01 20:15:00 1
2015-01-01 20:30:00 4
2015-01-01 20:45:00 2
Ich möchte meine ursprüngliche DataFrame eine Spalte haben, die dem eindeutigen entspricht Anzahl der Zeilen in der spezifischen Gruppe, zu der es gehört. Zum Beispiel kann die erste Gruppe
2015-01-01 20:00:00
hat 2 Reihen, so dass die ersten beiden Reihen meiner neuen Spalte in d1 sollte die Zahl 1
der zweiten Gruppe so
2015-01-01 20:15:00
hat 1 Reihe haben die dritte Reihe meiner neuen Spalte in d1 sollte die Zahl 2
die dritte Gruppe hat
2015-01-01 20:15:00
hat 4 Reihen so die vierten, fünfte, sechste und siebte Zeile meiner neuen Spalte in d1 die Zahl 3
ich meinen neuer Datenrahmen will wie dieser
a b c
0 2015-01-01 20:02:01 2 1
1 2015-01-01 20:14:58 4 1
2 2015-01-01 20:17:05 26 2
3 2015-01-01 20:31:05 22 3
4 2015-01-01 20:34:28 45 3
5 2015-01-01 20:37:51 3 3
6 2015-01-01 20:41:19 8 3
7 2015-01-01 20:49:04 121 4
8 2015-01-01 20:59:21 34 4
Nicht die Ausgabe, die ich brauche. Ich brauche jeden Wert in Spalte c in Bezug auf seine Gruppe einzigartig. – mikeL
Oh, Entschuldigung, ich habe falsch verstanden. –
Eine kleine Änderung und es gibt was Sie wollen: siehe Bearbeiten. –