2017-03-16 9 views
1

私は州名といくつかの数値データとdataset持っている:私はそれぞれの状態を通過し、mean()を計算したいどのように意味パンダからネストされた辞書を作成する()と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) 

をし、 std()を入力し、後で取り出すにはdictに追加します。

私は私のdictは次のようになりたいと思います:d = {'ALASKA':{'mean':1,'std':6}}

私の問題は、私はPythonで辞書を使ったことがないということであると私は、辞書内の辞書を作成する方法が本当にわかりません。私はどんな提案にも開放的です

ありがとうございます!

答えて

3

私はちょうど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}} 
にそれを保管してください 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}} 

でも、より多くのあなたを得ることができます

オプション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

関連する問題