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