【问题标题】:pandas adding mean and variance coulm熊猫添加均值和方差列
【发布时间】:2018-06-04 16:03:00
【问题描述】:

我想在我的 df 中添加一个加权平均列和一个权重标准开发:

[Existing df....]  [New columns to add in existing df i.e df[Mean] & df[StdDev]] 
Name  1  2  3  4    Mean                              StdDev 
x     2  2  2  2    m1=(2*1+2*2+2*3+2*4)/(2+2+2+2)   sqrt[(2*(1-m1)^2+2*(2-m1)^2+2*(3-m1)^2+2*(4-m1)^2)/(2+2+2+2)]
y     3  3  3  3    m2=(3*1+3*2+3*3+3*4)/(3+3+3+3)   sqrt[(3*(1-m2)^2+3*(2-m2)^2+3*(3-m2)^2+3*(4-m2)^2)/(3+3+3+3)]
z     1  3  5  7    m3=(1*1+3*2+5*3+7*4)/(1+3+4+7)   sqrt[(1*(1-m3)^2+3*(2-m3)^2+5*(3-m3)^2+7*(4-m3)^2)/(1+3+4+7)]

行操作让我失望。
谢谢你:)

【问题讨论】:

  • @djk47463 我的意思是对的,但我认为我的标准开发可能会关闭。让我仔细检查一下。
  • 应该不会超过权重之和吧,我觉得sd是对的
  • @djk47463 我认为这是落后的。感谢您指出。我会编辑它

标签: python pandas mean standard-deviation


【解决方案1】:

通过使用numpy

df=df.set_index('Name')
df.columns=df.columns.astype(int)

Mean=np.sum(df.values*df.columns.values,1)/np.sum(df.values)
Std=np.sum(np.power(df.columns.values-Mean[:,None],2)*df.values,1)/df.values.sum(1)

df.assign(Mean=Mean,Std=np.sqrt(Std.astype(float)))
Out[523]: 
      1  2  3  4      Mean       Std
Name                                
x     2  2  2  2  0.555556  2.242959
y     3  3  3  3  0.833333  2.006932
z     1  3  5  7  1.388889  1.968110

【讨论】:

  • 我认为您的加权平均值已关闭。 @displayname 的意思是正确的
  • 这是我使用的:Mean= (df.valuesdf.columns.values).sum(1)/df.values.sum(1) Std=(df.columns.值np.power(df.values-(df.values*df.columns.values).sum(1)/df.values.sum(1))).sum(1)/dff.values。 sum(1) 平均功,但标准没有;[
  • @TylerNG 我知道你会修复它
  • @TylerNG 快乐编码
【解决方案2】:

没有比这更容易的了..

import pandas as pd
import numpy as np

np.random.seed(42)

df = pd.DataFrame(np.random.rand(10, 4), columns=np.asarray([1, 2, 3, 4]))

mus = (df * df.columns.values).sum(1) / df.sum(1)
# Calculations for stds
#stds = 

df['weighted_mu'] = mus
#df['weighted_std'] = stds

print(df)

输出:

          1         2         3         4  weighted_mu
0  0.374540  0.950714  0.731994  0.598658     2.585401
1  0.156019  0.155995  0.058084  0.866176     3.322052
2  0.601115  0.708073  0.020584  0.969910     2.591077
3  0.832443  0.212339  0.181825  0.183405     1.798719
4  0.304242  0.524756  0.431945  0.291229     2.457527
5  0.611853  0.139494  0.292145  0.366362     2.292949
6  0.456070  0.785176  0.199674  0.514234     2.394891
7  0.592415  0.046450  0.607545  0.170524     2.251373
8  0.065052  0.948886  0.965632  0.808397     2.902943
9  0.304614  0.097672  0.684233  0.440152     2.825275

【讨论】:

  • 加权平均列和权重标准差
猜你喜欢
  • 2017-08-13
  • 1970-01-01
  • 2015-03-03
  • 2015-09-11
  • 1970-01-01
  • 2019-07-03
  • 1970-01-01
  • 2014-01-14
相关资源
最近更新 更多