verwenden würde Ich mag den folgenden Datenrahmen nach Verschwenken den Datenrahmen (Logging von einer Simulation) der Teilmenge:Subsetting auf pandas Datenrahmen nach pivot_table
import pandas as pd
df = pd.DataFrame(
{'runid' : [26 , 26 , 26 , 26 , 26 , 26 , 27 , 27 , 27 , 27 , 27 , 27 ],
'time' : [0 , 1 , 1 , 3 , 5 , 7 , 0 , 0 , 0 , 2 , 4 , 5 ],
'process': ['p1', 'p2', 'p2', 'p1', 'p1', 'p2', 'p1', 'p1', 'p2', 'p2', 'p2', 'p1'],
'state' : ['a' , 'a' , 'b' , 'b' , 'c' , 'c' , 'a' , 'b' , 'a' , 'b' , 'c' , 'c' ]
})
dann den Datenrahmen schwenkt:
data = pd.pivot_table(df, index=['runid', 'process'], columns=['state'], values=['time'])
Ausgabe:
time
state a b c
runid process
26 p1 0 3 5
p2 1 1 7
27 p1 0 0 5
p2 0 2 4
Wie mache ich nach t diesen geschwenkten DataFrame, so dass runid 26 und die Spalten a und b ausgewählt werden (so dass ich a von b für alle Prozesse mit runid 26 subtrahieren und diese Werte für die Analyse speichern kann).
Vielen Dank! Und wie füge ich zu dieser Untermenge eine Zusatzspalte 'bminusa' hinzu mit dem Wert von b minus a? – Rene
@Rene 'sub_df.time.b - sub_df.time.a'? Sie sollten sich den Abschnitt [MultiIndex/Erweiterte Indexierung] (http://pandas.pydata.org/pandas-docs/stable/advanced.html) der Dokumentation ansehen. – miradulo