Python pandas查询表格volume最大值对应datetime及index值
pandas 实现查询volume最大值对应信息的方案
前置代码:构造示例DataFrame
你可以直接用如下代码构造题目中的测试数据,如果你是从文件/数据库读入数据可以跳过这一步直接替换成你的读入逻辑:
import pandas as pd # 构造测试数据 data = [ [100, 3, "2021-09-29 04:00:00-04:00"], [300, 2, "2021-09-29 04:30:00-04:00"], [700, 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, 29, "2021-09-29 07:00:00-04:00"] ] df = pd.DataFrame(data, columns=["volume", "price", "datetime"])
需求1:获取volume最大值对应的datetime值
用idxmax()方法获取volume列最大值对应的行索引,再通过索引取值即可:
max_vol_datetime = df.loc[df['volume'].idxmax(), 'datetime'] print(max_vol_datetime)
运行输出结果为:2021-09-29 06:30:00-04:00
如果你存在多个volume同为最大值的行,需要返回所有对应datetime,可以用布尔索引实现:
max_vol = df['volume'].max() all_max_datetime = df.loc[df['volume'] == max_vol, 'datetime'].tolist()
需求2:获取volume最大值对应的行索引编号
直接取idxmax()的返回值即可:
max_vol_index = df['volume'].idxmax() print(max_vol_index)
运行输出结果为:4(pandas默认行索引从0开始计数)
如果你存在多个volume同为最大值的行,需要返回所有对应行索引,可以用如下代码:
max_vol = df['volume'].max() all_max_index = df[df['volume'] == max_vol].index.tolist()
内容的提问来源于stack exchange,提问作者GinSnipe
相关产品推荐
相关产品推荐

