首页 > 后端开发 > Python教程 > 如何根据数据帧中的值范围过滤行而不产生模糊的真值?

如何根据数据帧中的值范围过滤行而不产生模糊的真值?

DDD
发布: 2024-11-19 10:13:03
原创
1013 人浏览过

How to Filter Rows Based on Value Range in a DataFrame Without Ambiguous Truth Values?

根据 DataFrame 中的值范围选择行

使用 DataFrame 时,可能需要根据特定范围过滤行特定列中的值。例如,考虑一个名为 df 的 DataFrame,其中包含一列 opening_price。要提取 close_price 中的值在 99 到 101 之间的行,通常使用以下代码:

df[99 <= df['closing_price'] <= 101]
登录后复制

但是,此代码可能会触发 ValueError,指示“系列的真值不明确”。出现此错误的原因是比较结果是一系列布尔值,尝试直接使用它进行行选择可能会导致歧义。

幸运的是,有一种更合适的方法来实现此过滤,而无需借助循环。以下是使用 Series. Between() 的更正代码:

df[df['closing_price'].between(99, 101)]
登录后复制

Series. Between() 提供了一种简单的方法来检查 Series 中的值是否落在指定范围内。该方法有两个参数:下限和上限。在上面的示例中,我们分别提供 99 和 101 作为下限和上限,以选择 opening_price 在这些值之间的行。

此方法通过返回一系列布尔值有效解决了歧义问题明确指示每一行是否满足条件。然后使用这些布尔值从 DataFrame 中过滤并选择所需的行。

以上是如何根据数据帧中的值范围过滤行而不产生模糊的真值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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