首页 > 后端开发 > Python教程 > 如何有条件地替换 Pandas DataFrame 列中的值?

如何有条件地替换 Pandas DataFrame 列中的值?

DDD
发布: 2024-12-31 17:13:13
原创
232 人浏览过

How to Conditionally Replace Values in a Pandas DataFrame Column?

Pandas DataFrame 中的条件值替换

使用 Pandas DataFrame 时,您可能会遇到需要根据条件有条件替换值的情况指定条件。此问题说明了这样一个场景,其中用户试图将特定列中超过阈值的值替换为零。

最初,用户尝试使用以下方法:

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

然而,这个方法没有任何结果。这是因为 Pandas 自 0.20.0 版本以来已弃用 .ix 索引器,用户应使用 .loc 或 .iloc 索引器。

正确的解决方案包括使用 .loc 或 .iloc 来定位特定行或列并执行条件替换。以下是如何使用 .loc:

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

或者,您可以使用 .loc 在一行中完成相同的任务:

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

掩码变量有助于识别满足条件的行条件 df.my_channel > 20000,并且 df.loc[mask, column_name] = 0 为指定列中选定的行分配 0。

注意:在此特定场景中,建议使用 .loc 代替.iloc 以避免 NotImplementedError,因为不支持使用 .iloc 进行基于整数的布尔索引。

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

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