我有一个著名的titanic数据集,叫做fr1。class列包含以下内容:1、2、3性别栏:男性,女性我想获得每个班级女性的平均年龄,我认为这应该是一个更简单的方法来编写以下代码,例如,假设有20个班级而不是3个:
c3 = fr1[fr1["class"] ==3] c3w = fr1[fr1["gender"] =='female'] print(round(c3w["Age"].mean()))
字符串
ssgvzors1#
您可以过滤女性,然后pandasgroupby方法并将聚合函数应用于每个组(=每个类):
pandas
groupby
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()
型
1条答案
按热度按时间ssgvzors1#
您可以过滤女性,然后
pandas
groupby
方法并将聚合函数应用于每个组(=每个类):字符串
输出量:
型
如果你跳过舍入部分,它可能会更简单。
型