2017-10-27 8 views
2

これは私のパンダのデータフレームです。パンダに二重累計をグループ化する方法は?

import pandas as pd 

df = pd.DataFrame([ 
    ['2017-01-01 19:00:00','2017-01-01 19:00:00','2017-01-02 17:00:00','2017-01-01 17:00:00', 
    '2017-01-02 19:00:00','2017-01-02 19:00:00'], 
        ['RUT','RUT','RUT','NDX','NDX','NDX'],[1.0,1.0,1.0,1.0,2.0,2.0],[2.0,2.0,1.0,1.0,3.0,3.0]]).T 

df.columns=[['Fecha_Hora','Ticker_Suby','Rtdo_Bruto_x_Estrat','Rtdo_Neto_x_Estrat']] 
df = df.sort_values(by=['Ticker_Suby','Fecha_Hora',], ascending=True) 
df 

まあ、私は「Rtdo_Bruto_x_Estrat'and 'Rtdo_Neto_x_Estrat Fecha_Hora 'と 'Ticker_Suby'' がでグループ化された' 合計する必要があります。

私が使用している:

df.groupby(by=['Fecha_Hora','Ticker_Suby']).sum().groupby(level[0]).cumsum() 

そして、私は正常に取得:

enter image description here

まあ、私の問題は、私は、フィールドのRtdo_Bruto_x_Estrat "の値の累積合計を適用する必要があるということです'Ticker Suby'でグループ化されたこの新しいdfで 'Rtdo_Neto_x_Estrat'

enter image description here

私が使用している:私の目標です

df.groupby(by=['Fecha_Hora','Ticker_Suby']).sum().groupby(level=[1]).cumsum() 

そして私が手:

enter image description here

だから、本当に私の問題は、両方のソリューションを可能にする方法です同じデータフレームで

ありがとうございました。

答えて

1

使用cumsumによって作成されたDataFramesconcat、違いがDataframelevel=1level=0と第二でgroupbyによって作成された最初のものである:

a = df.groupby(by=['Fecha_Hora','Ticker_Suby']).sum() 
df = pd.concat([a.groupby(level=[0]).cumsum(), 
       a.groupby(level=[1]).cumsum().add_suffix('_cum')], 1) 
print (df) 
           Rtdo_Bruto_x_Estrat Rtdo_Neto_x_Estrat \ 
Fecha_Hora   Ticker_Suby            
2017-01-01 17:00:00 NDX       1.0     1.0 
2017-01-01 19:00:00 RUT       2.0     4.0 
2017-01-02 17:00:00 RUT       1.0     1.0 
2017-01-02 19:00:00 NDX       4.0     6.0 

           Rtdo_Bruto_x_Estrat_cum \ 
Fecha_Hora   Ticker_Suby        
2017-01-01 17:00:00 NDX        1.0 
2017-01-01 19:00:00 RUT        2.0 
2017-01-02 17:00:00 RUT        3.0 
2017-01-02 19:00:00 NDX        5.0 

           Rtdo_Neto_x_Estrat_cum 
Fecha_Hora   Ticker_Suby       
2017-01-01 17:00:00 NDX        1.0 
2017-01-01 19:00:00 RUT        4.0 
2017-01-02 17:00:00 RUT        5.0 
2017-01-02 19:00:00 NDX        7.0 
+0

おかげJezrael。それは私のプロジェクトで大丈夫です。 –

関連する問題