python - Pandas 移动行 block

标签 python pandas slice

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

相关文章:

python - 如何使用 alembic --autogenerate 忽略某些模式

python - 使用正则表达式返回日期字符串

python - 如何使用Python创建一个非常简单的DNS服务器?

python - 使用 pandas 从数据框中删除空间

pointers - 空结构 slice 的地址

python - 使用 selenium python 时如何单击链接

python - 动态创建列。为它们分配一个常量行向量

Pandas - 提取第 4 个字符后的所有文本

python - 使用数组选择轴形成多维数组

go - 如何避免为类似的 golang 结构重新实现 sort.Interface