ich einen Datenrahmen haben df1Python Pandas GROUPBY und subtrahieren Spalten aus verschiedenen Gruppen
pid stat h1 h2 h3 h4 h5 h6 ... h20
1 a 3.2 3.5 6.2 7.1 1.2 2.3 ... 3.2
1 b 3.3 1.5 4.2 7.7 4.2 3.5 ... 8.4
1 a 3.1 3.8 2.2 1.1 6.2 5.3 ... 9.2
1 b 3.7 1.2 8.2 4.7 3.2 8.5 ... 2.4
: : : : : : : : : :
2 a 2.2 3.8 6.2 7.3 1.3 4.3 ... 3.2
2 b 4.3 1.3 4.2 5.7 2.2 3.1 ... 2.4
2 a 2.1 3.7 2.4 1.6 6.4 9.3 ... 9.6
2 b 3.8 1.3 8.7 3.7 7.2 8.3 ... 9.4
: : : : : : : : : :
3 a 2.2 3.8 6.2 7.3 1.3 4.3 ... 3.2
3 b 4.3 1.3 4.2 5.7 2.2 3.1 ... 2.4
3 a 2.1 3.7 2.4 1.6 6.4 9.3 ... 9.6
3 b 3.8 1.3 8.7 3.7 7.2 8.3 ... 9.4
: : : : : : : : : :
Ich mag würde Gruppen auf pid
und stat
indiziert erhalten und dann h
Werte von Gruppe1 aus h
Werte von group2 für eine endgültige subtrahieren dataframe
(df2
). Dieser letzte Datenrahmen muss mit Zahlen neu indiziert werden, beginnend mit 0:len(groups)
Wiederhole es iterativ für alle Permutationen von PID wie 1-2, 1-3, 1-4, 2-1, 2-3 ... usw. Ich muss andere durchführen Berechnungen zu dem auf dem letzten Datenrahmen df2
(Wert im unten df2
nicht abgezogen werden exakt, sondern nur eine Darstellung)
pid(string) stat h1p1-h1p2 h2p1-h2p2 h3p1-h3p2 h4p1-h4p2 h5p1-h5p2 h6p1-h6p2 ... h20p1-h2p2
1-2 a 3.2 3.5 6.2 7.1 1.2 2.3 ... 3.2
1-2 b 3.3 1.5 4.2 7.7 4.2 3.5 ... 8.4
1-2 a 3.1 3.8 2.2 1.1 6.2 5.3 ... 9.2
1-2 b 3.7 1.2 8.2 4.7 3.2 8.5 ... 2.4
1-3 ....
ich Optionen sah;
for (pid, stat), group in df1.groupby(['pid', 'stat']):
print('pid = %s Stat = %s' %(pid, stat))
print group
das gibt mir Gruppen, aber ich bin nicht sicher, wie Datenrahmen von diesem for-Schleife zuzugreifen und sie von anderen Gruppen zu subtrahieren. Auch
df_grouped = df.groupby(['pid', 'stat']).groups()
immer noch nicht sicher, wie Sie auf den neuen Datenrahmen von Gruppen zugreifen und Operationen ausführen. Ich würde gerne wissen, ob dies mit groupby getan werden kann oder ob es einen besseren Ansatz gibt. Danke im Voraus!
Perfekte Antwort. Vielen Dank! – Jagruth