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

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

DDD
DDD原创
2024-12-31 17:13:13252浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn