首页 > 解决方案 > get the mean var of all columns value and make new column

问题描述

Let say we habe

      A , B , C
id    
1     3, 4, 5
2     4 ,5, 2

if I want to make a new column D with ID 1's mean,var and ID2's mean and var

标签: pythondataframe

解决方案


使用DataFrame.agg

df[['avg','var']] = df.agg(['mean','var'], axis=1)
print (df)
   A  B  C       avg       var
1  3  4  5  4.000000  1.000000
2  4  5  2  3.666667  2.333333

另一个想法:

df = df.assign(avg=df.mean(axis=1),
               var=df.var(axis=1))
print (df)
   A  B  C       avg       var
1  3  4  5  4.000000  1.000000
2  4  5  2  3.666667  2.333333

如果你想variance在:ddof=0DataFrame.var

df = df.assign(avg=df.mean(axis=1),
               var=df.var(axis=1, ddof=0))
print (df)
   A  B  C       avg       var
1  3  4  5  4.000000  0.666667
2  4  5  2  3.666667  1.555556

推荐阅读