首页 > 后端开发 > Python教程 > 如何根据 Pandas 中的列值高效删除 DataFrame 行?

如何根据 Pandas 中的列值高效删除 DataFrame 行?

Linda Hamilton
发布: 2024-12-29 22:08:16
原创
486 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板