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

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

Barbara Streisand
Barbara Streisand原创
2024-12-22 09:03:24631浏览

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