我想在数据帧中选择一个包含 5 行的移动 block ,但我想从数据帧的末尾开始执行此操作。由于切片参数的排他性,我在语法上遇到了一些麻烦。
例如,以下内容适用于 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
最佳答案
我在这里使用 df.take() 找到了一个可以忍受的解决方案
最终我决定使用:
df_final.take(-(np.arange(5)+1+i)[::-1])
这让我获得了数据帧的完整内容,基于 1 到 5 的范围,并使用::-1 反转排序顺序
关于python - Pandas 移动行 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55096083/