Python 如何按每个块的行数列表拆分数据帧?

Python 如何按每个块的行数列表拆分数据帧?,python,pandas,list,dataframe,Python,Pandas,List,Dataframe,我有一个数据框,我想根据列表中的元素来分割它。例如,我有一个范围列表[16,14,2…] 然后我想切割数据帧,使第一个数据块有16行长,第二部分有14行,第三部分有2行。。等等。把它放在一个列表中也是有益的 使用。这可能需要对一系列索引进行切片,因此将需要您查看范围列表 indices = np.cumsum(range_list, dtype=np.int32) np.split(df, indices) 例子 [返回] 在本例中,返回一个包含3个数据帧的列表,其中包括形状(16,2),(

我有一个数据框,我想根据列表中的元素来分割它。例如,我有一个
范围列表[16,14,2…]

然后我想切割数据帧,使第一个数据块有16行长,第二部分有14行,第三部分有2行。。等等。把它放在一个列表中也是有益的

使用。这可能需要对一系列索引进行切片,因此将需要您查看范围列表

indices = np.cumsum(range_list, dtype=np.int32)

np.split(df, indices)
例子 [返回]

在本例中,返回一个包含3个数据帧的列表,其中包括形状
(16,2)
(14,2)
&
(2,2)

使用。这可能需要对一系列索引进行切片,因此将需要您查看范围列表

indices = np.cumsum(range_list, dtype=np.int32)

np.split(df, indices)
例子 [返回]

在本例中,返回一个包含3个数据帧的列表,其中包括形状
(16,2)
(14,2)
&
(2,2)


我不确定我是否理解正确。 如果您只想拆分列表,可以执行以下操作:

def split_list(l, range_list):
    i = 0
    for x in range_list:
        start = i
        end = start + x
        print(l[start:end])

我不确定我是否理解正确。 如果您只想拆分列表,可以执行以下操作:

def split_list(l, range_list):
    i = 0
    for x in range_list:
        start = i
        end = start + x
        print(l[start:end])

您可以使用列表元素的累积和创建一个数组,添加一个初始零和一个最终的-1,然后对其进行迭代以切片初始数据帧:

ls=[16,14,2,…]
卡盘=np.累计(ls)
c=np.零(长度(卡盘)+2)
c[1:-1]=卡盘
c[-1]=-1
所有_dfs=[]
对于i范围(透镜(c)-1):
df_list.append(df[c[i]:c[i+1]]

您可以使用列表元素的累积和创建一个数组,添加一个初始零和一个最终-1,然后迭代该数组以切片初始数据帧:

ls=[16,14,2,…]
卡盘=np.累计(ls)
c=np.零(长度(卡盘)+2)
c[1:-1]=卡盘
c[-1]=-1
所有_dfs=[]
对于i范围(透镜(c)-1):
df_list.append(df[c[i]:c[i+1]]

是否可以使用浮点值进行此操作?我的df中有浮点数,并收到错误消息:TypeError:'numpy.float64'对象不能解释为整数您不能使用浮点数切片。。。例如,列表中没有索引
2.5
。索引必须是整数如果您的意思是在
range\u列表中有浮点数据类型(我只希望
x.0
值),那么使用
index=np.cumsum(range\u列表,dtype=np.int32)
谢谢,这是我实际寻找的,它仍然会给出错误TypeError:“numpy.float64”对象不能解释为整数是否可以使用浮点值执行此操作?我的df中有浮点数,并收到错误消息:TypeError:'numpy.float64'对象不能解释为整数您不能使用浮点数切片。。。例如,列表中没有索引
2.5
。索引必须是整数如果您的意思是
range\u list
中有浮点数据类型(我只希望
x.0
值),那么使用
index=np.cumsum(range\u list,dtype=np.int32)
谢谢,这是我实际查找的,它仍然会给出错误类型错误:“numpy.float64”对象不能解释为整数