numpy 如何简化“获取各阶层女性的平均年龄”

btqmn9zl  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(91)

我有一个著名的titanic数据集,叫做fr1。
class列包含以下内容:1、2、3性别栏:男性,女性
我想获得每个班级女性的平均年龄,我认为这应该是一个更简单的方法来编写以下代码,例如,假设有20个班级而不是3个:

c3 = fr1[fr1["class"] ==3]
c3w = fr1[fr1["gender"] =='female']
print(round(c3w["Age"].mean()))

字符串

ssgvzors

ssgvzors1#

您可以过滤女性,然后pandasgroupby方法并将聚合函数应用于每个组(=每个类):

fr1 = pd.DataFrame({
    "class": ["1", "2", "2"],
    "gender": ["female", "female", "female"],
    "age": [30, 25, 18]
})

fr1[fr1["gender"] == "female"] \
    .groupby("class", as_index=False)["age"] \
    .agg(lambda x: round(np.mean(x)))

字符串
输出量:

class  age
0     1   30
1     2   22


如果你跳过舍入部分,它可能会更简单。

fr1[fr1["gender"] == "female"] \
    .groupby("class", as_index=False)["age"] \
    .mean()

相关问题