Ist es möglich, diese Daten so zu transformieren/kombinieren, dass die mit tf beginnenden Spalten als Index angezeigt werden und nur die Spalten übrigbleiben, die mit vol als den verbleibenden Spalten beginnen?Pandas Zeitreihendaten mit angegebenen Spalten transformieren und summieren
Beispiel Ausgangsdaten:
v1 v2 v3 tf1 tf2 tf3
Timestamp
2011-09-01 02:36:00 1 1 0 1 1 0
2011-09-01 03:00:00 1 0 0 1 1 0
2011-09-01 03:36:00 1 0 0 1 1 0
2011-09-01 04:00:00 1 0 0 1 0 0
2011-09-01 04:33:00 1 0 0 1 0 0
2011-09-01 04:39:00 1 0 0 1 0 0
2011-09-01 05:12:00 1 0 0 1 0 0
2011-09-01 05:30:00 1 0 0 1 0 0
2011-09-01 05:36:00 1 0 0 1 1 1
2011-09-01 05:42:00 1 0 0 1 0 0
gewünschte Ausgabe:
gewünschter Ausgang zeigt Summe der Werte, wenn v1
, v2
oder v3
der Index und tf1
, tf2
und tf3
sind die dataframe
Säulen.
tf1 tf2 tf3
v1 10 4 1
v2 1 1 0
v3 0 0 0
Wie aus den obigen Beispielen ersichtlich, gab es 10-mal, dass v1
und tf1
Wert waren 1
, 4-mal, dass v1
und tf2
waren Wert 1
usw.
ich erfolglos versucht haben versucht, dies zu tun mit groupby
und versucht, Index und Spalten zu transponieren, dh subset[vlist].T
gibt mir die v1, v2 und v3 als Index, aber dann habe ich die Zeitstempel Daten als die Spalten, die nicht was ich will.
Kann dies von einer Gruppe mit Summe oder ähnlichem gemacht werden?
Danke für jede Hilfe.
OMG! stahl meine Antwort! :-) – piRSquared
Das ist perfekt danke! Und danke @piRSquared – ade1e
Können Sie bitte erklären, was das '.dot' Element zu den Daten macht? Multipliziert es die Spalten und Indexdaten? Danke – ade1e