Python Pandas双条件查询:获取最高volume对应的最低price
Pandas双条件查询实现方案
实现思路
核心逻辑分两步:
- 先锁定所有
volume为最大值的记录 - 再从上述记录中取
price的最小值
你可以根据自己的场景选择以下任意一种实现方式:
方法1:直接筛选(效率更高)
import pandas as pd # 构造示例数据,实际使用时替换为你的数据源读取代码(如pd.read_csv()) data = { 'volume': [100, 300, 900, 500, 900, 400], 'price': [3, 2, 5, 9, 22, 1], 'datetime': [ '2021-09-29 04:00:00-04:00', '2021-09-29 04:30:00-04:00', '2021-09-29 05:30:00-04:00', '2021-09-29 06:00:00-04:00', '2021-09-29 06:30:00-04:00', '2021-09-29 07:00:00-04:00' ] } df = pd.DataFrame(data) # 核心逻辑 max_vol = df['volume'].max() res = df[df['volume'] == max_vol]['price'].min() print(res) # 输出:5
方法2:排序取值(扩展性更强)
如果后续需要调整匹配优先级、或者需要获取完整的匹配行信息,推荐用排序方案:
# 按volume降序、price升序排序,取第一条的price值 res = df.sort_values(by=['volume', 'price'], ascending=[False, True]).iloc[0]['price'] print(res) # 输出:5
内容的提问来源于stack exchange,提问作者GinSnipe
相关产品推荐
相关产品推荐

