https://hub.jovian.ml/wp-content/uploads/2020/09/countries.csv
我使用上述数据练习熊猫和NumPy方法
我想用NumPy的平均函数来计算我的总体预期寿命
np.average(countries_df["life_expectancy"], weights=countries_df["population"])
但这给了我nan
如何使用NumPy获得正确答案
使用下面的方法,我得到了正确的答案
(countries_df['life_expectancy']*countries_df['population']).sum() / countries_df['population'].sum()
在执行平均之前,需要删除空值:
您提到的第二种方法是不正确的,您需要先过滤“预期寿命”中的nan值,然后再进行除法中的人口总和:
编辑
样本数据:
使用第二种方法:106000/3500=30.28(显然不正确)
如果在执行计算之前删除nan行,则得到下表
结果:106000/1500=70.66
如果你把一个数乘以nan,你会得到一个nan。当您对所有值求和时,只需忽略nan值并对其余值求和,而不像numpy.sum,如果存在nan,它也将返回nan
相关问题 更多 >
编程相关推荐