熊猫移动行的行

问题描述 投票:1回答:1

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

python pandas slice
1个回答
0
投票

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

最终我坚持使用:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.