当前位置: 首页 > 知识库问答 >
问题:

在Python中,如何在两个值之间选择数据帧中的行?

康泽宇
2023-03-14

我试图修改数据帧df以仅包含列closing\u price中的值介于99和101之间的行,并尝试使用下面的代码执行此操作。

然而,我得到了错误

ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()

我想知道是否有一种不用循环就能做到这一点的方法。

df = df[(99 <= df['closing_price'] <= 101)]

共有3个答案

吴均
2023-03-14

还有一个更好的选择-使用query()方法:

In [58]: df = pd.DataFrame({'closing_price': np.random.randint(95, 105, 10)})

In [59]: df
Out[59]:
   closing_price
0            104
1             99
2             98
3             95
4            103
5            101
6            101
7             99
8             95
9             96

In [60]: df.query('99 <= closing_price <= 101')
Out[60]:
   closing_price
1             99
5            101
6            101
7             99

更新:回复评论:

我喜欢这里的语法,但在尝试与expresison结合时,我失败了<代码>测向查询('(平均值2*sd)

In [161]: qry = "(closing_price.mean() - 2*closing_price.std())" +\
     ...:       " <= closing_price <= " + \
     ...:       "(closing_price.mean() + 2*closing_price.std())"
     ...:

In [162]: df.query(qry)
Out[162]:
   closing_price
0             97
1            101
2             97
3             95
4            100
5             99
6            100
7            101
8             99
9             95
巩选
2023-03-14

您应该使用()对布尔向量进行分组,以消除歧义。

df = df[(df['closing_price'] >= 99) & (df['closing_price'] <= 101)]
任昊阳
2023-03-14

还考虑系列之间:

df = df[df['closing_price'].between(99, 101)]
 类似资料:
  • 问题内容: 我正在使用数据库存储日志,其中“日期”列保存了插入日期。日期的格式为“ MM / DD / YY”。请任何人建议我如何在两个特定日期之间选择数据。例如,我尝试了这个: 但是我想这行不通,因为日期不是数字。谢谢您的帮助!:) 问题答案: 使用关键字:

  • 问题内容: 我已将用户注册的日期保存为日期时间,例如 2011-12-06 10:45:36 。我已运行此查询,并且希望此项目 -2011-12-06 10: 45 : 36- 将被选择: 但是不是。存在任何优雅的方式,该如何选择?我最初的想法是,但是看起来不太好。 问题答案: 您的问题是日期的简短版本使用午夜作为默认设置。因此,您的查询实际上是: 这就是为什么您看不到10:45的记录的原因。 更

  • 基本上,它应该在步骤中找到指标为43且步骤=1的行,然后将该值放在新列中,在这种情况下,它将是“Gross value Added”。任何帮助都将非常感谢!

  • 问题内容: 我正在尝试在2列之间选择一个值。这是我的数据集 我的目标是(如果我的值为2)是选择 ID为1 (在from和to之间)的行。所以这是我正在使用的查询: 这是MySQL执行此查询时返回的结果: 我正在寻找的结果如下: 我尝试使用<和>等。但是,我总是得到两个结果。任何帮助将非常感激。 问题答案: 所以,您不希望下限具有包容性,对吗?

  • 如何根据Pandas中某个列中的值从中选择行? 在SQL中,我将使用: 我试图查看熊猫的文档,但我没有立即找到答案。

  • 我试图查看熊猫的文档,但我没有立即找到答案。