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()函数的函数,我想这可能是可行的