首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中的Null独立列平均值计算

Python中的Null独立列平均值计算
EN

Stack Overflow用户
提问于 2018-06-23 04:25:49
回答 1查看 476关注 0票数 -1

我正在尝试计算Python中三列的平均值。这里是捕捉-如果我的3列的所有3个行值都不是null,那么我的平均值将是(x+y+z)/3。

如果我其中一个行值为空(假设z),那么我的平均值应该是(x+y)/2。

我将这些平均值存储在一个单独的列中,该列是pandas数据帧的一部分。

我正在寻找最好的方法,因为我的数据集有200多万行。我的数据如下。

提前谢谢。

代码语言:javascript
复制
     A    B  C
0    1    2  3   # = (1+2+3)/3 = 2
1    4  NaN  6   # = (4+6)/2 = 5
2  NaN    8  9   # = (8+9)/2 = 8.5
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-23 04:44:24

只需沿轴0 (列)应用numpy.nanmean函数即可。这是默认轴,因此您将获得与省略axis = 0相同的结果。如果您想要行方式的方法,请使用axis = 1

代码语言:javascript
复制
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'a': [2.3, 4.5, 2.1, np.nan, 6.7],
    'b': [2.4, 5.6, np.nan, np.nan, 7.1],
    'c': [np.nan, np.nan, np.nan, np.nan, 0.9]
})

colmeans = df.apply(np.nanmean, axis = 0)

# colmeans
# a    3.900000
# b    5.033333
# c    0.900000
# dtype: float64

rowmeans = df.apply(np.nanmean, axis = 1)

# 0    2.35
# 1    5.05
# 2    2.10
# 3     NaN
# 4    4.90
# dtype: float64
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50995152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档