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

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

DDD
发布: 2024-12-15 07:28:12
原创
735 人浏览过

How to Efficiently Replace Values in Pandas DataFrames Based on Conditional Thresholds?

Pandas 中的条件值替换

在 Pandas 中使用 DataFrame 时,通常需要根据某些条件有选择地修改值。一个常见的任务是替换特定列中超过特定​​阈值的值。

之前使用 df[df.my_channel > 的尝试20000].my_channel = 0 语法在作为原始 DataFrame 的一部分时被证明不成功。这是由于 Pandas 0.20.0 中引入的索引更改所致,它弃用了 .ix 索引器。

为了解决这个问题,我们可以利用 .loc 索引器,它提供了另一种访问和修改行和列的方法

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

这段代码通过首先创建一个布尔掩码(mask)来实现想要的结果,其中每个值对应于df.my_channel 列中对应的值是否超过 20000。然后我们使用 .loc 来选择 mask 为 True 的行,并将值 0 分配给 column_name 列。

作为替代方案,以下可以使用 -line 代码片段:

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

在这种情况下,使用 .loc 而不是 .iloc 很重要(基于整数位置的索引)以避免 NotImplementedError。

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

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