将数据帧拆分为多个重叠行

Mar*_*k K 6 python dataframe pandas

需要将其拆分为多个数据帧的数据帧。每6行(自上而下)成为一个新的数据框。

下面几行工作正常,如屏幕截图所示。

import pandas as pd

data = {'ID': ["a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15","a16","a17","a18","a19","a20","a21","a22"], 
'Unit_Weight': [178,153,193,195,214,157,205,212,219,166,217,186,170,207,204,201,179,215,213,170,217,199]}

df = pd.DataFrame(data)

size = 6      # 6 rows in a new data-frame
list_of_dfs = [df.loc[i:i+size-1,:] for i in range(0, len(df),size)]

for l_d in list_of_dfs:
    print l_d
Run Code Online (Sandbox Code Playgroud)

现在我想从下往上执行此操作,并且从 df_2 开始,它包含前一个数据帧的最后 2 行。

在 Python 中让它发生的正确方法是什么?谢谢。

在此输入图像描述

Udi*_*sht 6

这对我有用:-

import pandas as pd

data = {'ID': ["a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15","a16","a17","a18","a19","a20","a21","a22"], 
'Unit_Weight': [178,153,193,195,214,157,205,212,219,166,217,186,170,207,204,201,179,215,213,170,217,199]}

df = pd.DataFrame(data)


size = 6      # 6 rows in a new data-frame
list_of_dfs = [df.loc[i:i+size-1,:] for i in range(0, len(df),size-2) if i <len(df)-2]

for l_d in list_of_dfs:
    print (l_d)
Run Code Online (Sandbox Code Playgroud)