问题描述
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)
这能解决您的问题吗?
`