【发布时间】:2019-11-11 00:39:16
【问题描述】:
我正在尝试计算两列下的平均重量,性别和类型,因为 df 如下:
sex | type | weight
M Obese 305
F Normal 100
M Underweight 105
【问题讨论】:
标签: python python-3.x pandas data-science
我正在尝试计算两列下的平均重量,性别和类型,因为 df 如下:
sex | type | weight
M Obese 305
F Normal 100
M Underweight 105
【问题讨论】:
标签: python python-3.x pandas data-science
您在这里使用了filter 错误。将您想要保留的内容传递给like 参数:
df.groupby(['sex','type'])['weight'].mean().filter(like='Obese')
输出:
sex type
M Obese 305
Name: weight, dtype: int64
【讨论】:
filter(like='Obese').filter(like='M')。
你想这样做吗?
import pandas as pd
df = pd.DataFrame({'sex': ['M', 'F', 'M'], 'type':['obese', 'Normal' ,'Underweight'],
'weight': [305, 100, 105]})
print(df[df['type'] == 'obese']['weight'].mean())
首先,我认为您不需要 filter() 函数,它所做的事情与您想象的不同。其次,您总是希望先选择或“过滤”,然后再进行计算。
希望这会有所帮助。
【讨论】: