【问题标题】:python pandas | double conditional statement大熊猫 |双条件语句
【发布时间】:2021-12-30 17:27:08
【问题描述】:
volume price datetime
100 3 2021-09-29 04:00:00-04:00
300 2 2021-09-29 04:30:00-04:00
900 5 2021-09-29 05:30:00-04:00
500 9 2021-09-29 06:00:00-04:00
900 22 2021-09-29 06:30:00-04:00
400 1 2021-09-29 07:00:00-04:00

返回具有最高volumeprice。如果有 2 个 volume 相同,则返回较低的 price(在这种情况下为 5)

提前致谢!!

【问题讨论】:

  • 你试过什么?您是想同时使用两个条件句,还是获得一个结果然后进一步减少它?
  • 两者都有效。我只知道 df['volume].max() 返回最大值。逻辑应该是“如果最大交易量出现 2 次或更多(例如,有 3 行的交易量为 900),则返回这 3 行中的最低价格)

标签: python pandas conditional-statements


【解决方案1】:

这是一种方法。首先,找到最大音量的行(我在这些示例中省略了datetime 列):

>>> df[df.volume == df.volume.max()]
   volume  price
2     900      5
4     900     22

然后使用该结果找到最低价格:

>>> df[df.volume == df.volume.max()].price.min()
5

【讨论】:

  • 非常感谢!抱歉,您介意再推荐一个过滤器吗?最重要的是,如果我想说在某个时间范围内,请找出最大交易量,如果最大交易量超过 1 个,请找出头脑中的价格。所以基本上我正在考虑添加 .between 但不知道如何将它嵌套在你上面给出的函数中
  • @GinSnipe:最好为此打开另一个问题。有一些细节here 可能会有所帮助。
猜你喜欢
  • 2021-12-30
  • 2020-07-25
  • 1970-01-01
  • 2022-11-28
  • 2022-12-11
  • 2020-09-22
  • 1970-01-01
  • 2018-06-27
  • 2021-08-27
相关资源
最近更新 更多