首頁 >後端開發 >Python教學 >如何根據 Pandas 中的列值高效刪除 DataFrame 行?

如何根據 Pandas 中的列值高效刪除 DataFrame 行?

Linda Hamilton
Linda Hamilton原創
2024-12-29 22:08:16513瀏覽

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

根據列值有效刪除 DataFrame 行

在 Pandas 中,可以透過多種方式實現根據特定列值刪除行。最有效的方法之一是使用邏輯索引。

考慮以下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]
})

要刪除line_race 列等於0 的行,我們可以使用以下命令程式碼行:

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

此表達式建立一個新的DataFrame,其中僅包含line_race 欄位沒有值的行0.透過使用邏輯索引,我們可以避免建立資料副本,這在處理大型資料集時可以顯著提高效能。

以上是如何根據 Pandas 中的列值高效刪除 DataFrame 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn