熊猫移动块

时间:2019-03-11 06:08:36

标签: python pandas slice

我想在一个数据帧中选择一个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

1 个答案:

答案 0 :(得分:0)

我在这里使用df.take()找到了可以容忍的解决方案

我最终决定使用:

df_final.take(-(np.arange(5)+1+i)[::-1])

这使我获得了数据帧的全部内容,基于1到5的范围,并使用::-1反转排序顺序