2015-05-19 32 views
4

我有一個數據幀,其ID和與每個ID相關的大量測試結果。我想要做的是創建第二個數據框,其中彙總了特定測試的平均分數和標準差,然後我可以在圖上繪製。如何創建彙總統計數據框?

以下是我到目前爲止的代碼。它返回一個錯誤「ValueError:長度不匹配:期望軸有1個元素,新值有2個元素」。

任何人都可以幫忙嗎?


df2 = df1.groupby(['id'], as_index=True).agg({'variable_1':['mean'], 'variable_1':['std']}) 
    df2.columns=['var_mean','var_std'] 
    df2.plot(x='var_mean', y='var_std', kind='scatter', figsize=(15,10), title='Standard Deviation of Std vs Mean') 


example data: 

ID Variable_1 
1234 32 
1234 23 
2345 54 
2345 65 
2345 76 
3456 78 

what I'd like: 

ID Mean SD 
1234 23.5 2.2 
2345 45 9 
... 
... 

回答

3

可以傳遞功能的字典到groupby執行使用agg的統計:

In [154]: 

df.groupby('ID')['Variable_1'].agg({'Mean':np.mean, 'SD':np.std}) 
Out[154]: 
     Mean   SD 
ID     
1234 27.5 6.363961 
2345 65.0 11.000000 
3456 78.0  NaN 
+0

出色的工作,感謝@EdChum。當我允許的時候,我將在〜6分鐘內標記爲正確! :) –