Python 2.7 Python中的空独立列平均值计算

Python 2.7 Python中的空独立列平均值计算,python-2.7,pandas,Python 2.7,Pandas,我试图计算Python中三列的平均值。这是陷阱- 如果我的3列的所有3行值都不为空,那么我的平均值将为(x+y+z)/3 如果我的一行值为null(假设z),那么我的平均值应该是(x+y)/2 我将这些平均值存储在一个单独的列中,这是熊猫数据帧的一部分 我正在寻找最好的方法,因为我的数据集有200多万行。 我的数据如下 提前谢谢 A B C 0 1 2 3 # = (1+2+3)/3 = 2 1 4 NaN 6 # = (4+6)/2 = 5 2

我试图计算Python中三列的平均值。这是陷阱- 如果我的3列的所有3行值都不为空,那么我的平均值将为(x+y+z)/3

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

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

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

提前谢谢

     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

只需沿轴
0
(列)应用
numpy.nanmean
函数即可。这是默认轴,因此忽略轴=0将得到相同的结果。如果需要行方式的平均值,请使用轴=1:

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

我想他们想要三列的行平均值,所以axis=1?好吧,然后巨大的东转图像把我弄糊涂了:)我会更新一吨!为我糟糕的发帖技巧道歉:)