Pandas Max Min在指数范围之间

时间:2018-06-14 16:10:45

标签: python pandas dataframe

我有以下时间序列pandas dataframe

index | Date | Time | open | high | low | close | volume

293  2018-06-14  14:55  1832.15  1833.40  1831.90  1833.35   37947
294  2018-06-14  15:00  1833.40  1834.95  1833.30  1834.90  106271
295  2018-06-14  15:05  1834.95  1835.05  1834.40  1834.85  102107
296  2018-06-14  15:10  1834.80  1834.85  1832.95  1833.80   95931
297  2018-06-14  15:15  1833.75  1834.85  1833.05  1834.85  124639
298  2018-06-14  15:20  1834.85  1834.85  1831.55  1832.50  121206
  1. 我需要获取索引和行数据,其中Date =' d1'和时间=' t1'

    例如。获取data = 2018-06-14和time = 15:05

  2. 的行值
  3. 我需要在t1和t2之间找到max(high),其中date =' d1' (T2> t1)的

    例如,在时间15:00到15:15之间找到最大值(高),其中日期=' 2018-06-14'

1 个答案:

答案 0 :(得分:1)

  

获取data = 2018-06-14和time = 15:05

的行值

使用布尔索引:

mask = (df['Date'] == '2018-06-14') & (df['Time'] == '15:05')
values = df[mask]
idx = res.index
  

最长(高)时间15:00至15:15,其中日期=' 2018-06-14'

使用布尔索引和pd.Series.max

mask = df['Time'].between('15:00', '15:15') & (df['Date'] == '2018-06-14')
res = df.loc[mask, 'high'].max()

在这两种解决方案中,您都必须做一些工作以确保您拥有正确的数据格式(例如datetime / timedelta)并相应地调整掩码。关于此主题,有关于SO的许多问题。