PANDAS:将带有日期时间索引的大熊猫系列切入过去的n行

问题描述

upper_lower_bound从我的数据框中返回2个日期时间索引。我一次只使用一个,而且它们之间没有任何关系。

我想从数据帧max()获取前6行数据的highP值,但是如果尝试从中减去6,则会出现错误dt.timedelta(6)从df中减去6天,但在df中缺少日期,因此无法提供正确的答案。

如何对highP进行切片,以使其获得该系列中的前六个值,例如。

highP.loc[i - 6: i].max()假设i是日期时间索引?

任何帮助将不胜感激!

upper_lower_bound = df[(isoHL['IH'] >= 1) | (isoHL['IL'] >= 1)].index[-3:-1]

if isoHL.loc[upper_lower_bound[-1]]['IH'] == 1 and isoHL.loc[upper_lower_bound[-1]]['IL'] == 0:
    upper_bound = highP.loc[upper_lower_bound[-1] - dt.timedelta(6):upper_lower_bound[-1]].max()
else:
    pass

解决方法

如何按时间排序并带尾的最后一个元素呢? 为了通用起见,我将在以下符号中使用符号:

  • dataframe = flatMap(maxPublishers: .max(1))
  • 时间列= df
  • 值列= t
  • 某些位置= val

首先,我们获得时间为

i

然后我们按时间排序:

before_df = df[df['t'] <= df.loc[i,'t']]

然后我们将最后五个带“ tail”:

before_df = before_df.sort_values(by=['t'])

然后,我们最大化价值之上

five_before = before_df.tail(5)

这能解决您的问题吗?

`