首页 > 后端开发 > Python教程 > 如何根据条件高效替换 Pandas DataFrame 值?

如何根据条件高效替换 Pandas DataFrame 值?

Barbara Streisand
发布: 2024-12-22 09:03:24
原创
722 人浏览过

How to Efficiently Replace Pandas DataFrame Values Based on a Condition?

Pandas DataFrame 中的条件替换

在 Pandas DataFrame 中,根据条件替换值是一项常见任务。考虑这样一种情况,如果特定列中的值超过阈值,则需要将它们设置为零。

原始方法:

实现此目的的一种常见方法是通过使用 df[].ix 索引器,该索引器在 Pandas 版本 0.20.0 和 0.20.0 中已弃用

df[df.my_channel > 20000]['my_channel'] = 0
登录后复制

替代解决方案:

随着 loc 和 iloc 索引器的引入,执行条件替换的推荐方法是:

使用本地索引器:

mask = df['my_channel'] > 20000
df.loc[mask, 'my_channel'] = 0
登录后复制

loc 索引器允许基于布尔掩码进行行和列选择。在这种情况下,掩码选择 df['my_channel'] > 的行。 20000,并且这些行在“my_channel”列中设置为零。

使用 iloc 索引器:

mask = df['my_channel'] > 20000
df.iloc[mask.index, df.columns.get_loc('my_channel')] = 0
登录后复制

iloc 索引器允许基于以下内容进行选择整数索引。在这种情况下,掩码索引用于选择行,“my_channel”的列索引用于将值设置为零。

注意: 在这种特定情况下,建议使用 loc 索引器而不是 iloc 索引器,因为 iloc 不支持整数列上的布尔索引。

以上是如何根据条件高效替换 Pandas DataFrame 值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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