【问题标题】:Calculate standard deviation for groups of values using Python使用 Python 计算值组的标准差
【发布时间】:2022-01-03 15:36:19
【问题描述】:

我的数据与此类似:

index name number difference
0     AAA  10     0
1     AAA  20     10
2     BBB  1      0
3     BBB  2      1
4     CCC  5      0
5     CCC  10     5
6     CCC  10.5   0.5

我需要根据名称组计算差异列的标准差。

我试过了

data[['difference']].groupby(['name']).agg(['mean', 'std'])

data["std"]=(data['difference'].groupby('name').std())

但两者都为传递给groupby() 的变量提供了KeyError。我试图解决它:

data.columns = data.columns.str.strip()

但错误仍然存​​在。

提前致谢。

【问题讨论】:

  • 您正试图在单个列上运行 groupby。 data[['difference']]中不存在“名称”

标签: python pandas-groupby aggregate standard-deviation


【解决方案1】:

您可以先在完整的数据框上使用groupby(['name']),并且只在感兴趣的列上应用agg:

data = pd.DataFrame({'name':['AAA','AAA','BBB','BBB','CCC','CCC','CCC'],
                    'number':[10,20,1,2,5,10,10.5],
                    'difference':[0,10,0,1,0,5,0.5]})
data.groupby(['name'])['difference'].agg(['mean', 'std'])

【讨论】:

  • 我认为这行得通。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-21
相关资源
最近更新 更多