Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧拆分为多个重叠行_Python_Pandas_Dataframe - Fatal编程技术网

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

Python 将数据帧拆分为多个重叠行,python,pandas,dataframe,Python,Pandas,Dataframe,需要将其拆分为多个数据帧的数据帧。每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,21

需要将其拆分为多个数据帧的数据帧。每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
现在我想从下到上做,因为df_2,它包括上一个数据帧的最后两行

用Python实现这一点的正确方法是什么?多谢各位

这对我很有效:-

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)
将熊猫作为pd导入
数据={'ID':[“a1”,“a2”,“a3”,“a4”,“a5”,“a6”,“a7”,“a8”,“a9”,“a10”,“a11”,“a12”,“a13”,“a14”,“a15”,“a16”,“a17”,“a18”,“a19”,“a20”,“a21”,“a22”],
‘单位重量’:[17815319319521415720521221916621718617020720420401792115213170217199]}
df=pd.DataFrame(数据)
大小=新数据帧中的6#6行

如果i我将向前工作,但只是向后计数数据帧编号,则在范围(0,len(df),size-2)内的i的列表_of_dfs=[df.loc[i:i+size-1,:]

df_num = 5
li_dicts = {}

for x in range(0,17,4):
    y = x + 6
    df_temp = df.iloc[x:y,:]
    li_dicts[("df_" + str(df_num))] = df_temp
    df_num -= 1

li_dicts['df_5']

   ID  Unit_Weight
0  a1          178
1  a2          153
2  a3          193
3  a4          195
4  a5          214
5  a6          157

我更喜欢@Udit Hari Vashisht回答!