小编sei*_*dox的帖子

Pandas:按满足条件的列分组

我有一个包含三列的数据集: rating 、breed 和 dog。

import pandas as pd
dogs = {'breed': ['Chihuahua', 'Chihuahua', 'Dalmatian', 'Sphynx'],
        'dog': [True, True, True, False],
        'rating': [8.0, 9.0, 10.0, 7.0]}

df = pd.DataFrame(data=dogs)
Run Code Online (Sandbox Code Playgroud)

我想计算每个品种的平均评级,其中狗是真的。这将是预期的:

  breed     rating
0 Chihuahua 8.5   
1 Dalmatian 10.0  
Run Code Online (Sandbox Code Playgroud)

这是我的尝试:

df.groupby('breed')['rating'].mean().where(dog == True)
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

NameError: name 'dog' is not defined
Run Code Online (Sandbox Code Playgroud)

但是当我尝试添加where条件时,我只会得到错误。任何人都可以建议解决方案吗?TIA

python group-by dataframe pandas pandas-groupby

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

dataframe ×1

group-by ×1

pandas ×1

pandas-groupby ×1

python ×1