Ich habe einen Beispieldatenrahmen wie folgt.Vergleichen Sie Zeilen und dann Zeilen, wenn nötig.
df = pd.DataFrame({ 'Area' : ['1', '2', '3', '4','5', '6', '7', '8', '9', '10'],
'Distance' : ['19626207', '20174412', '20175112', '19396352',
'19391124', '19851396', '19221462', '20195112', '21127633', '19989793'],
})
Area Distance
0 1 19626207
1 2 20174412
2 3 20175112
3 4 19396352 # smaller, take out
4 5 19391124 #
5 6 19851396 #
6 7 19221462 #
7 8 20195112
8 9 21127633
9 10 19989793 #
Die Spalte 'Abstand' muss in aufsteigender Reihenfolge angeordnet werden.
Aber die Reihenfolge der Datenrahmen festgelegt ist (Order of ‚Area‘ ist nicht veränderbare),
was bedeutet, wenn Reihen kleiner als vorherige Zeilen, dann die Zeilen werden müssen genommen. Zum Beispiel, hier ist das Ergebnis, das ich gerne sehen würde.
Area Distance
1 19626207
2 20174412
3 20175112
8 20195112
9 21127633
Ich weiß, dass ich so etwas wie for i in range(0, len(index), 1)
versuchen ...
Aber gibt es esaier Weg, um das Ziel mit Pandas zu erreichen?
Irgendwelche Hinweise bitte?
Ich denke, dass Sie überprüfen können, ob die aktuelle Zeile größer als die Cummax ist. 'df [df.Distance.astype (" int64 ")> = df.Widerstand.astype (" int64 "). cummax()]' – ayhan
@ayhan, das ist es !!! Bitte posten Sie es als Antwort - es ist Ihre Lösung und es ist besser als meine. – MaxU
Ich denke, die Schlüsselidee war 'cummax' - die du erfunden hast, und die Duplikate waren ein kleines Detail, also denke ich, dass es besser wäre, wenn du deine Antwort redest. :) – ayhan