2017-03-16 19 views
1

我有狀態的名字和一些數字數據的dataset如何創建大熊貓嵌套字典的意思是()和STD()

d = {'state' : pd.Series(['ALASKA','CALIFORNIA','TEXAS'], index=[0,1,2]), 
    'numericdata' : pd.Series([342, 234,756], index=[0,1,2])} 
pd.DataFrame(d) 

我想通過每一個州和計算mean(),和std()並將其添加到dict以稍後檢索。

我想我dict看起來像這樣:d = {'ALASKA':{'mean':1,'std':6}}

我的問題是,我從來沒有使用Python字典,我真的不知道如何創建一個字典內的字典。我打開任何建議

在此先感謝!

回答

3

我可以讓你更具有describe

df.groupby('state')['numeric data'].describe().unstack().to_dict('index') 

{'ALASKA': {'25%': 342.0, 
    '50%': 342.0, 
    '75%': 342.0, 
    'count': 1.0, 
    'max': 342.0, 
    'mean': 342.0, 
    'min': 342.0, 
    'std': nan}, 
'CALIFORNIA': {'25%': 234.0, 
    '50%': 234.0, 
    '75%': 234.0, 
    'count': 1.0, 
    'max': 234.0, 
    'mean': 234.0, 
    'min': 234.0, 
    'std': nan}, 
'TEXAS': {'25%': 756.0, 
    '50%': 756.0, 
    '75%': 756.0, 
    'count': 1.0, 
    'max': 756.0, 
    'mean': 756.0, 
    'min': 756.0, 
    'std': nan}} 

保持它只是meanstd

選項1

df.groupby('state')['numeric data'].agg(['mean', 'std']).to_dict('index') 

{'ALASKA': {'mean': 342.0, 'std': nan}, 
'CALIFORNIA': {'mean': 234.0, 'std': nan}, 
'TEXAS': {'mean': 756.0, 'std': nan}} 

選項2

df.groupby('state')['numeric data'].describe().unstack()[['mean', 'std']].to_dict('index') 

{'ALASKA': {'mean': 342.0, 'std': nan}, 
'CALIFORNIA': {'mean': 234.0, 'std': nan}, 
'TEXAS': {'mean': 756.0, 'std': nan}} 
+0

這是一種更好的答案比我一直在尋找!非常感謝!我會盡快接受這個答案。 – rubito

+0

如果'numericdata'實際上是'數字數據'會怎麼樣? – rubito

+0

@rubito我已更新我的帖子 – piRSquared