根据特定变量计算每行和每个组的标准偏差

问题描述 投票:0回答:1

我是python的新用户,我的问题是计算列residual的标准差。做到这一点:

  1. 我必须计算每组的平均残差
  2. 我需要每个组的ID大小

我碰巧做了一些计算,这是我的代码:

import pandas as pd 
import statsmodels.api as sm
import statsmodels.formula.api as sm
from statistics import stdev
import statistics
from math import * 

#Enumerate the data 1,2,3.. for each variable 
A['Rec'] = A.groupby(['code ']).cumcount().add(1)

## Defining companies by their IDs
A['ID']=A.groupby('code ').ngroup().add(1)

### FINDING RESIDUALS 
results = sm.ols(formula='Y ~ X', data=A).fit()
Y_pred = results.predict(A[["X"]])
Y_pred
A['residual'] = A["Y"].values-Y_pred

###SIZE 
A['size']=A.groupby(['ID']).size()



###SD of residuals
for i in A['ID']:
    A['Std'] = sqrt((A['residual']-A['MEAN'])**2)/(A['size']-1)))

这是我的数据框enter image description here

现在将这些组称为ID(1,2,3,4,5);在每个组中都有行。在每行中,并按组划分,我希望具有列残差的SD。

python pandas group-by statistics standard-deviation
1个回答
0
投票

我很抱歉,我没有足够的意见要发表评论,必须提供答案。无论如何,你可以尝试这样的事情:

new_df = df.loc[:, 'residual'].groupby(df['ID']).std()

© www.soinside.com 2019 - 2024. All rights reserved.