Diese Frage trifft, ist eine Erweiterung dieses: Pandas: Calculating value of difference between current column value and next column value depending if it meets criteria at a different columnPandas: Berechnung Wert der Differenz zwischen dem aktuellen Spaltenwert und dem nächsten Spaltenwert je nachdem, ob es Kriterien in einer anderen Spalte
Zunächst ich zwischen jedem den Unterschied wissen wollte Position und die nächste Position, die in der Spalte foobar
den entgegengesetzten Wert hat. Hier
ist ein Datenrahmen:
pd.DataFrame.from_items([('A', [10, 'foo']), ('B', [440, 'foo']), ('C', [790, 'bar']), ('D', [800, 'bar']), ('E', [7000, 'foo']), ('F', [14000, 'bar']), ('G', [27000, 'bar'])], orient='index', columns=['position', 'foobar'])
die wie folgt aussieht:
position foobar
A 10 foo
B 440 foo
C 790 bar
D 800 bar
E 7000 foo
F 14000 bar
G 27000 bar
Jezrael eine ausgezeichnete Antwort bereitgestellt, um die Differenz zwischen jeder Position zu finden und der nächsten Position, die den entgegengesetzten Wert hat in die Foobar-Spalte, die Ausgabe produziert:
Allerdings was Ich würde jetzt gerne nach vorne und hinten schauen. So foo
und sollte für die bar
suchen, die die nächste Position ist, und nicht nur die nächste nach vorne (in der Spalte). So sollte die Ausgabe tatsächlich aussehen:
position foobar length
A 10 foo 780
B 440 foo 350
C 790 bar 350
D 800 bar 360
E 7000 foo 6200
F 14000 bar 7000
G 27000 bar 20000
Wie Sie mehrere der Längen sehen können, werden jetzt geändert, wie wir suchen nach oben und unten die foobar Spalte. Ich gebe zu, keine Ahnung zu haben, wie ich das machen soll.
Vielen Dank. Das funktioniert perfekt und ist auch sehr gut erklärt. – spiral01