Skip to main content
 首页 » 编程设计

python之如何根据列中的值计数计算数据框的平均值

2025年05月04日21zhoujg

我有一个如下所示的数据框,我想计算每列的平均值,但前提是该列有足够的编号。输入的值数

   ID      val1  val2  val3  val4  val5 
   41      190   7.4    67      5    1 
   36      118     8    72      5     
   12      149  12.6    74           
   18      313  11.5    62           
   25       12  14.3    56      5     
   28       56  14.9    66           6 
   23      299   8.6    65           
   19       99  13.8    59           
    8       19  20.1    61      5    9 

val4 和 val5 没有足够的值,所以我不需要它们的平均值。 我正在尝试使用 df[df.isnull().sum() < 5].mean() 之类的东西来实现这一点

请您参考如下方法:

使用DataFrame.loc对于boolean indexing对于列,首先 : 表示所有行,然后计算 mean:

#if first column is not index 
#df = df.set_index('ID') 
s = df.loc[:, df.notnull().sum() > 5].mean() 

与反转条件相同的是:

s = df.loc[:, df.isnull().sum() <= 5].mean() 

print (dfs 
val1    139.444444 
val2     12.355556 
val3     64.666667 
dtype: float64 

另一种解决方案 DataFrame.count获取排除缺失值的列数:

df = df.loc[:, df.count() > 5].mean() 
print (df) 
val1    139.444444 
val2     12.355556 
val3     64.666667 
dtype: float64