2014-02-17 61 views
1

我有一個數據幀:中間軸線

cid  1 1  1  2  2  3 3 
slot            
87  26.45 NaN 12.54 NaN NaN NaN NaN 
88  NaN NaN  NaN 8.12 NaN NaN NaN 
89 108.72 NaN  NaN NaN NaN NaN NaN 
90  9.56 NaN 110.42 58.95 15.17 32.9 NaN 

我想計算所有同名列的中位數在兩個指數和列,最好得到一個系列:

1 26.45 
2 15.17 
3 32.90 
Name: cid, dtype: float64 

通過這些維度中的一個來獲得平均值是微不足道的,但我似乎無法跨越這兩個維度(而且做一個,然後另一個不是一回事)。

我試過融化和索引shenanigans,但我總是似乎最終只有一個座標軸的中位數。

我確定這個解決方案非常明顯,但我似乎無法看清週一早上的陰霾。有什麼建議麼?

回答

3

如何像:

>>> pd.melt(df).groupby("cid")["value"].median() 
cid 
1  26.45 
2  15.17 
3  32.90 
Name: value, dtype: float64 
+0

輝煌!我認爲融化是關鍵,但我忽略了[「價值」]。 – offbyone

+0

@offbyone:即使沒有'['value']'它會工作,它只會給你一個'DataFrame'作爲列的名稱。 – DSM