python中的累积和和和分解为不同的数据帧?

python中的累积和和和分解为不同的数据帧?,python,pandas,Python,Pandas,我在Python数据框中有一列Col A Col A = 0.5, 0.3,1 , 3 , 0.2 , 3, 3, 4, 5 我有一个固定值,dis=4 我必须取出A列的总和,如果总和大于dis,把这些行分开,从最后一行开始,就像前五行总和大于dis一样,我在不同的数据帧中打破它,接下来我有几行sum,它是==dis,我可以将它分解成不同的数据帧,直到它完成所有行,我知道for循环是可能的方法,但有更好的解决方案吗 是否可以在Python中执行此操作?让我们执行以下操作: A=[] m=0 f

我在
Python数据框中有一列Col A

Col A = 0.5, 0.3,1 , 3 , 0.2 , 3, 3, 4, 5
我有一个固定值,
dis=4
我必须取出A列的总和,如果总和大于dis,把这些行分开,从最后一行开始,就像前五行总和大于dis一样,我在不同的数据帧中打破它,接下来我有几行sum,它是==dis,我可以将它分解成不同的数据帧,直到它完成所有行,我知道for循环是可能的方法,但有更好的解决方案吗

是否可以在Python中执行此操作?

让我们执行以下操作:

A=[]
m=0
for y,x in enumerate(df.Col1):
    m+=x
    print(m)
    if m>=4:
        m=0
        A.append(y)
    else:
        m=m

df['g']=np.nan
df.g.iloc[A]=list(range(len(A)))
df=df.bfill()
现在有了新的g列,然后可以拆分df

[y for _,y in df.groupby('g')]
Out[965]: 
[   Col1    g
 0   0.5  0.0
 1   0.3  0.0
 2   1.0  0.0
 3   3.0  0.0,    Col1    g
 4   0.2  1.0
 5   3.0  1.0
 6   3.0  1.0,    Col1    g
 7   4.0  2.0,    Col1    g
 8   5.0  3.0]
让我们做以下几点:

A=[]
m=0
for y,x in enumerate(df.Col1):
    m+=x
    print(m)
    if m>=4:
        m=0
        A.append(y)
    else:
        m=m

df['g']=np.nan
df.g.iloc[A]=list(range(len(A)))
df=df.bfill()
现在有了新的g列,然后可以拆分df

[y for _,y in df.groupby('g')]
Out[965]: 
[   Col1    g
 0   0.5  0.0
 1   0.3  0.0
 2   1.0  0.0
 3   3.0  0.0,    Col1    g
 4   0.2  1.0
 5   3.0  1.0
 6   3.0  1.0,    Col1    g
 7   4.0  2.0,    Col1    g
 8   5.0  3.0]

您认为可以帮助您吗?@user32185谢谢,是的,这是我想要的,但在这一点之后,我将如何分割数据帧?任何Idea@Ravi我不知道
.ep
一个选项是创建一个类似的函数,为每个组返回一个键,然后
列表(df.groupby('key'))
将返回所有数据帧(以及该键,因此您应该在列表中导航)。根据您的示例显示您预期的结果以下答案对我不起作用,我正在寻找一个名为.le()和.ge()的函数,这可能会起作用。我想你认为能帮到你吗?@user32185谢谢,是的,这是我想要的,但在那之后我将如何分割数据帧?任何Idea@Ravi我不知道
.ep
一个选项是创建一个类似的函数,为每个组返回一个键,然后
列表(df.groupby('key'))
将返回所有数据帧(以及该键,因此您应该在列表中导航)。根据您的示例显示您预期的结果以下答案对我不起作用,我正在寻找一个名为.le()和.ge()函数的函数,我想这可能是可行的