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