我想在一个数据帧中选择一个5行的移动块,但是我想从数据帧的末尾开始。由于slice参数的排他性,我在语法上遇到了麻烦。
例如,以下内容适用于1大小的切片,因为在-1上执行iloc切片会给我最后一行...
for i in range(1, 10):
df_live = df_final.iloc[-i]
但是我在将其缩放到如下所示的多行输出时遇到了麻烦...以下内容什么都不返回:
for i in range(1, 10):
df_live = df_final.iloc[-i:-(i+5)]
另一次尝试将忽略我的最后一条记录,因为切片将记录i排除在外。对最终记录执行i-1也不起作用(-0是引用最后一行的有效方法)。
for i in range(1, 10):
df_live = df_final.iloc[-(i+5):-i]
我认为这应该很简单,但是我没有运气... TYIA
答案 0 :(得分:0)
我在这里使用df.take()找到了可以容忍的解决方案
我最终决定使用:
df_final.take(-(np.arange(5)+1+i)[::-1])
这使我获得了数据帧的全部内容,基于1到5的范围,并使用::-1反转排序顺序