如何从pandas mean()和std()创建嵌套字典

时间:2017-03-16 17:01:15

标签: python pandas

我有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中使用字典,而且我不确定如何在字典中创建字典。我对任何建议持开放态度

提前致谢!

1 个答案:

答案 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}}

将其保持为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}}