首页 > 后端开发 > Python教程 > 如何有效地将超过阈值的 Pandas DataFrame 值替换为零?

如何有效地将超过阈值的 Pandas DataFrame 值替换为零?

Barbara Streisand
发布: 2024-12-17 00:21:25
原创
707 人浏览过

How to Efficiently Replace Pandas DataFrame Values Exceeding a Threshold with Zero?

Pandas 条件替换

操作 DataFrame 时,您可能会遇到需要替换满足特定条件的值的情况。本问题旨在解决如何在特定列中用零替换超过阈值的值。

原始方法和限制

初始方法尝试使用语法 df [df.my_channel> 20000].my_channel = 0。但是,正如用户所观察到的,这种方法在原始 DataFrame 中工作时会遇到问题。

使用 .loc 索引器的解决方案

至要解决此问题,可以使用 .loc 索引器,在较新版本的 Pandas 中推荐使用该索引器。此语法允许精确的行和列选择和更改。要实现所需的替换,您可以使用以下代码:

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

或者,您可以将代码压缩为一行:

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

说明

mask 变量选择 df.my_channel 超过 20000 的行。随后,df.loc[mask, column_name] = 0 将掩码为 True 的那些行的 my_channel 列设置为零。

注意

必须使用在这种情况下,.loc 索引器,因为在整数类型列上使用带有布尔索引的 .iloc 将导致未实现错误。

以上是如何有效地将超过阈值的 Pandas DataFrame 值替换为零?的详细内容。更多信息请关注PHP中文网其他相关文章!

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