包含nan值的平均值


import numpy as np
import pandas as pd

GFG_dict = { '2019': [10,20,30,40],'2020': [20,30,40,50],'2021': [30, np.NaN, np.NaN, 60],'2022':[40,50,60,70]}

gfg = pd.DataFrame(GFG_dict)

gfg['mean1'] = gfg.mean(axis = 1)
gfg['mean2'] = gfg.loc[:,'2019':'2022'].sum(axis = 1)/4
gfg

我想要的是列mean2中的平均值

我如何得到相同的结果使用:.mean(axis =1)

当你做mean2时,你正在做和(跳过nan值),然后总是除以4(这是计数包括)nan)。

您可以通过执行fillna(0)然后计算平均值来实现这一点:

gfg['mean1'] = gfg.fillna(0).mean(axis = 1)

注意:这不会在你的数据框中填充nan值,但只做平均计算,所以你的数据框不会被修改

最新更新