1

考虑一些示例熊猫数据集:

df = pd.DataFrame([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9],
                   [0, 0, 0]],
                   columns=['A', 'B', 'C'])

现在,我想汇总要排除零的每一列(比如计算平均值)。我可以看到有agg可以调用的函数,但我不知道在计算平均值时如何排除零点。

我知道在映射列时,我需要以某种方式过滤掉零,但我不知道如何将其包含在对df.agg()函数的调用中。

4

2 回答 2

3

将 0 替换为,np.nan以便您可以调用 agg 函数

df.replace(0,np.nan).agg(np.mean)

于 2021-01-21T21:22:09.070 回答
1

您可以使用方法where并将mask零替换为NaN

df.where(df!=0).agg('mean')

或者

df.mask(df==0).agg('mean')

输出:

A    4.0
B    5.0
C    6.0
于 2021-01-21T22:12:43.253 回答