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