2017-11-29 14 views
1

iはPython DataFrame累積合計とPythonのさまざまなデータフレームに侵入?

Col A = 0.5, 0.3,1 , 3 , 0.2 , 3, 3, 4, 5 

に一つの列コルAを有しており、私はその和がgreater than the dis別個それらの行がある場合、列Aの和を取らなければならないdis = 4 あるつの固定値を有し、そして開始最初の5行のように最後に終わる同じことはdisよりも大きいです、私は別のDataFrameでそれを壊し、次にいくつかの行の合計が== disであり、すべての行を終えるまで別のDataFrameに分割できます、私はループがそれを行う可能な方法であることを知っているが、よりよい解決策?

Pythonで行うことはできますか?

+1

を分割することができますが、[この]をと思いますか(https://stackoverflow.com/ a/26605026/4819376)がお手伝いできますか? – user32185

+0

@ user32185ありがとうございます、これは私が望むものですが、そのポイントの後にデータフレームをどのようにセグメント化しますか?任意のアイデア – id101112

+0

@Ravi '.ep'についてはわかりません。オプションは各グループのキーを返す同様の関数を作成することです。' list(df.groupby( 'key')) 'はすべてのデータフレームを返します(そしてキーのため、リスト内をナビゲートする必要があります)。 – user32185

答えて

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]