首页 > 解决方案 > 使用 np.nan() 查找每行和列的平均值

问题描述

我有一个包含 10 个列的 df,其中包含 2006 年至 2015 年 15 个不同国家/地区的 GDP。我试图获得过去十年的平均 GDP。例如,德国 2006 年至 2015 年的平均 GDP。这是我尝试使用的代码:

avgGDP = pd.DataFrame(Top15,columns=['2006','2007','2008','2009', '2010', '2011', '2012', '2013', '2014', '2015'])
avgGDP['avg10'] = np.nanmean(avgGDP)

但是,我得到每个国家的相同平均值,即德国 1,000,000;西班牙 1,000,000;英国 1,000,000 等

关于如何为每个国家/地区获得个人平均值的任何想法?

编辑:

这是Top15的截图:

在此处输入图像描述

标签: pythonpandas

解决方案


您可以只过滤空值然后运行平均方法吗?

df = (avgGDP.dropna( inplace = True )).mean()

在我看来,您正在对整个数据帧进行平均以获取一个数组,然后尝试将该数组变成一列。更好的方法也可能是转置数据框并作为列插入:

avgGDP = avgGDP.T
avgGDP['newRow'] = np.nanmean(avgGDP)
avgGDP.T

推荐阅读