Ich versuche, eine anscheinend einfache Bedienung in Python zu tun:Pandas: Summe, wenn Spalten Werte übereinstimmt
Ich habe einige Datensätze, sagen 6, und ich möchte die Werte einer Spalte, wenn die Werte summieren der anderen beiden Spalten fällt zusammen. Danach möchte ich die Werte der Spalte, die summiert wurde, durch die Anzahl der Datensätze teilen, die ich in diesem Fall 6 habe (d. H. Berechnen des arithmetischen Mittels). Außerdem möchte ich 0 summieren, wenn die Werte der anderen Spalten nicht übereinstimmen.
Ich schreibe hier zwei Datenrahmen nach unten, als Beispiel:
Code1 Code2 Distance 0 15.0 15.0 2 1 15.0 60.0 3 2 15.0 69.0 2 3 15.0 434.0 1 4 15.0 842.0 0
Code1 Code2 Distance 0 14.0 15.0 4 1 14.0 60.0 7 2 15.0 15.0 0 3 15.0 60.0 1 4 15.0 69.0 9
Die erste Spalte der df.index Spalte ist. Dann möchte ich die Spalte "Abstand" nur addieren, wenn die Spalten "Code1" und "Code2" übereinstimmen. In diesem Fall wäre die gewünschte Ausgabe etwas wie:
Code1 Code2 Distance 0 14.0 15.0 2 1 14.0 60.0 3.5 2 15.0 15.0 1 3 15.0 60.0 2 4 15.0 69.0 5.5 5 15.0 434.0 0.5 6 15.0 842.0 0
Ich habe versucht, dies mit conditionals zu tun, aber für mehr als zwei df ist wirklich schwer zu tun. Gibt es irgendeine Methode in Pandas, um es schneller zu machen?
Jede mögliche Hilfe :-)
Könnte Ihr 'Code1' und' Code2' das gleiche in einem Datenrahmen sein? –
Ich bin mir nicht sicher, ob ich verstehe, möchten Sie die Werte der Entfernung Spalte hinzufügen, wenn Code1 UND Code2 miteinander übereinstimmen? zwischen dfs? unabhängig vom Index? Außerdem, wenn Sie N DataFrames alle mit den gleichen Spalten haben, warum können Sie nicht einfach ein großes df mit allen Daten erstellen und etwas wie sum col where condition verwenden? – nico
@AntonProtopopov, ja, könnte das gleiche sein. –