我有dataset
个州名和一些数字数据:
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中使用字典,而且我不确定如何在字典中创建字典。我对任何建议持开放态度
提前致谢!
答案 0 :(得分: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}}
将其保持为mean
和std
选项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}}