根据列值高效删除 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中文网其他相关文章!