2013-06-06 181 views
0

我有一個DF,看起來像這樣聚集:熊貓:多層次羣體

 batch group reading temp test block delay 
    0 9551 Control  340 22.9  1 X  35 
    1 9551 Control  345 22.9  1 Y 35 

我需要GROUP BY「組」和「塊」,例如我的方法看起來像這樣:

df.groupby(['block', 'group']).reading.mean().unstack().transpose() 

block  X   Y 
group       
Control 347.339450 350.427273 
Trial 347.790909 350.668182 

什麼會打電話像scipy.stats.ttest_ind 2參數功能上的數據切片這種方式使我最終的t檢驗的表

的最佳方式

控制VS試驗以x

控制VS試驗在y中

X VS在控制ý

X VS在試驗

ÿ

回答

0

您想在應用t檢驗前對數據進行分組和彙總?我想你想選擇數據的子集。分組可以做到這一點,但掩蔽可能會更簡單地完成工作。

隨口說說,我說你想要的東西,像

scipy.stats.ttest_ind(df[(df.group == 'Control') & (df.block == 'X')].reading, 
         df[(df.group == 'Trial') & (df.block == 'X')].reading) 
+0

屏蔽是一個明顯的答案,但我希望能有一些更優雅,可與GROUPBY結構工作,所以,如果分組被改變,你不需要去更新你的選擇 – Bicubic

+0

有趣的。我剛剛嘗試過的想法都沒有出現,但如果我想到任何事情,我會再次提醒。 –