列の値に基づいて DataFrame 行を効率的に削除する
Pandas では、特定の列の値に基づいて行を削除することは、いくつかの方法で実現できます。最も効率的なアプローチの 1 つは、論理インデックスを使用することです。
次の 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]
この式は、line_race 列に含まれていない行のみを含む新しい DataFrame を作成します。値は 0 です。論理インデックスを使用すると、データのコピーの作成が回避されます。これにより、大規模なデータセットを操作する場合のパフォーマンスが大幅に向上します。
以上がPandas の列値に基づいて DataFrame 行を効率的に削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。