Heim >Backend-Entwicklung >Python-Tutorial >Wie lösche ich DataFrame-Zeilen basierend auf dem Spaltenwert in Pandas effizient?

Wie lösche ich DataFrame-Zeilen basierend auf dem Spaltenwert in Pandas effizient?

Linda Hamilton
Linda HamiltonOriginal
2024-12-29 22:08:16513Durchsuche

How to Efficiently Delete DataFrame Rows Based on Column Value in Pandas?

DataFrame-Zeilen basierend auf dem Spaltenwert effizient löschen

In Pandas kann das Löschen von Zeilen basierend auf einem bestimmten Spaltenwert auf verschiedene Arten erreicht werden. Einer der effizientesten Ansätze ist die Verwendung einer logischen Indizierung.

Bedenken Sie den folgenden DataFrame:

df = pd.DataFrame({
    "daysago": [62, 83, 111, 139, 160, 204, 222, 245, 258, 275, 475, 504, 515, 542, 549, 556, 577, 589, 612, 632, 719, 733, 760, 790, 810, 934],
    "line_race": [11, 11, 9, 10, 10, 9, 8, 9, 11, 8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    "rating": [56, 67, 66, 83, 88, 52, 66, 70, 68, 72, 65, 70, 64, 70, 70, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1],
    "rw": [1.000000, 1.000000, 1.000000, 0.880678, 0.793033, 0.636655, 0.581946, 0.518825, 0.486226, 0.446667, 0.164591, 0.142409, 0.134800, 0.117803, 0.113758, 0.109852, 0.098919, 0.093168, 0.083063, 0.075171, 0.048690, 0.045404, 0.039679, 0.034160, 0.030915, 0.016647],
    "wrating": [56.000000, 67.000000, 66.000000, 73.096278, 69.786942, 33.106077, 38.408408, 36.317752, 33.063381, 32.160051, 10.698423, 9.968634, 8.627219, 8.246238, 7.963072, -0.109852, -0.098919, -0.093168, -0.083063, -0.075171, 3.359623, -0.045404, -0.039679, -0.034160, -0.030915, -0.016647]
})

Um die Zeilen zu löschen, in denen die Spalte „line_race“ gleich 0 ist, können wir Folgendes verwenden Codezeile:

df = df[df["line_race"] != 0]

Dieser Ausdruck erstellt einen neuen DataFrame, der nur die Zeilen enthält, in denen die Spalte „line_race“ nicht den Wert hat 0. Durch die Verwendung der logischen Indizierung vermeiden wir die Erstellung einer Kopie der Daten, was bei der Arbeit mit großen Datensätzen eine erhebliche Leistungsverbesserung bedeuten kann.

Das obige ist der detaillierte Inhalt vonWie lösche ich DataFrame-Zeilen basierend auf dem Spaltenwert in Pandas effizient?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn