如何在Titanic数据集按Pclass分组,筛选Fare高于均值的乘客并求最小Age
解决方案
你可以通过分组计算组内票价均值,再筛选出票价高于对应组均值的乘客,最后分组求最小年龄,具体代码如下:
import pandas as pd # 读取数据集(假设你已完成数据加载,如 df = pd.read_csv('titanic.csv')) # 1. 计算每个Pclass组的Fare均值,并用transform映射到每一行,实现逐行匹配组内均值 df['group_fare_mean'] = df.groupby('Pclass')['Fare'].transform('mean') # 2. 筛选出Fare高于所在组均值的乘客数据 filtered_df = df[df['Fare'] > df['group_fare_mean']] # 3. 按Pclass分组,提取符合条件乘客的最小Age result = filtered_df.groupby('Pclass')['Age'].min() print(result)
代码简化写法
如果想减少中间变量,也可以用链式操作一步完成:
result = df[df['Fare'] > df.groupby('Pclass')['Fare'].transform('mean')].groupby('Pclass')['Age'].min()
内容的提问来源于stack exchange,提问作者Fernando Martins
相关产品推荐
相关产品推荐

