计算平均值取决于python中原始数据的变量数



我被困在计算平均值取决于python中的变量。

我有8个变量,如下所示。

1。

Time         df1    df2   df3   df4   df5   df6  df7   df8
2020-01-01   220    250   235   215   221   221  220   253

在这种情况下,我可以计算如下的平均值

df['dfaverage']=(df['df1']+df['df2']+df['df3']+df['df4']+df['df5']+df['df6']+df['df7']+df['df8'])/8

输出将是229.4

但如果其中一个值为零,那么我如何忽略这些值并进行计算?例2 .

Time         df1    df2   df3   df4   df5   df6  df7   df8
2020-01-01   220    250   235   215   221   221  220    0

对于case2的输出应该是226,但是当我运行代码时,我将得到197.8。如何在计算平均值时忽略0 ?

您可以将0替换为缺失的值,并使用mean:

df['dfaverage'] = df.replace(0, np.nan).mean(axis=1)
print (df)
Time  df1  df2  df3  df4  df5  df6  df7  df8  dfaverage
0  2020-01-01  220  250  235  215  221  221  220    0      226.0

或者如果需要指定列名,使用list:

cols = [ 'df1', 'df2', 'df3', 'df4', 'df5', 'df6', 'df7', 'df8']
df['dfaverage'] = df[cols].replace(0, np.nan).mean(axis=1)
print (df)
Time  df1  df2  df3  df4  df5  df6  df7  df8  dfaverage
0  2020-01-01  220  250  235  215  221  221  220    0      226.0

相关内容

  • 没有找到相关文章