sei*_*dox 5 python group-by dataframe pandas pandas-groupby
我有一个包含三列的数据集: 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
一旦您分组并选择一列,您的dog列将不再存在于您选择的上下文中(即使存在,您也没有正确访问它)。
第一过滤您的数据帧,然后用groupby用mean
df[df.dog].groupby('breed')['rating'].mean().reset_index()
breed rating
0 Chihuahua 8.5
1 Dalmatian 10.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10096 次 |
| 最近记录: |