2015-04-02 61 views
0

我想創建兩個總和,一個條件爲datetype,另一個條件僅限於date。這是我的數據幀的摘錄:熊貓:按組總結行數

       0    1    2    3 
date  type                
2003-01-01 unemp 1.733275e+09 2.067889e+09 3.279421e+09 3.223396e+09 
2005-01-01 unemp 1.413758e+09 2.004171e+09 2.383106e+09 2.540857e+09 
2007-01-01 unemp 1.287548e+09 1.462072e+09 2.831217e+09 3.528558e+09 
2009-01-01 unemp 2.651480e+09 2.846055e+09 5.882084e+09 5.247459e+09 
2011-01-01 unemp 2.257016e+09 4.121532e+09 4.961291e+09 5.330930e+09 
2013-01-01 unemp 7.156784e+08 1.182770e+09 1.704251e+09 2.587171e+09 
2003-01-01 emp 6.e+09 9.692455e+09 2.288822e+10 3.215460e+10 
2005-01-01 emp 5.647393e+09 9.597211e+09 2.121828e+10 3.107219e+10 
2007-01-01 emp 4.617047e+09 8.030113e+09 2.005203e+10 2.755665e+10 

現在,我試圖

weightsDf.groupby(level=[0,1]).sum() 
weightsDf.groupby(level=[0,1]).apply(lambda x: x.sum()) 

這些都讓我總和每列,不是總和對所有列。對於那些我想在兩個typedate調節的情況下,我可以簡單地做

weightsDf.sum(axis=1) 

但是我怎麼進行的,我想只date條件時?與應用於數據幀時不同,

weightsDf.groupby(level=[0,1]).sum(axis=1) 

不接受參數axis。我可能凌亂的第二層的數據幀,然後再按行,但似乎太複雜。

+1

首先總和列,然後按組? 'weightDf.sum(axis = 1).groupby(level = [0,1])。sum()''那是你在找什麼? – joris 2015-04-02 13:41:07

+0

@joris:作品:) – FooBar 2015-04-02 13:42:05

回答

0

你可以做的和在列第一,然後組:

weightsDf.sum(axis=1).groupby(level=[0,1]).sum()