根据其他列值使用Numpy计算平均值

时间:2020-03-06 14:14:58

标签: python pandas

我有一个包含以下内容的数据集:

Table Example

我只需要为Jan和条件Yes计算持续时间列的平均值。我试过了,但是没有给出正确的值

Jan_Mean = np.where((df['Date']=="Jan")  & (df['Condition']=="Yes"), df["Duration"],0).mean()

3 个答案:

答案 0 :(得分:1)

df.groupby(['Date','Condition']).mean().loc['Jan','Yes'][0]

Out[1]:
1.5

说明

这将以DataFrame格式提供所需的数据:

df.groupby(['Date','Condition']).mean()
Out[2]:

                Duration
Date    Condition   
Feb     Yes     3.0
Jan     Yes     1.5

答案 1 :(得分:0)

如何使用groupby和均值。

df.groupby(['Date', 'Condition']).mean().loc[('Jan', 'Yes')]

答案 2 :(得分:-1)

熊猫在幕后使用NumPy,类似

df[(df['Date']=="Jan")  & (df['Condition']=="Yes")]["Duration"].mean()

应该可以解决问题。在这里

(df['Date']=="Jan")  & (df['Condition']=="Yes")

是布尔值掩码,因此将其应用于数据框后,会得到其过滤后的版本,然后可以使用其方法访问该列。更多可用方法here