如何按Alonso单场赛事所属车队条件过滤Pandas DataFrame
解决方法
核心思路
先明确每场赛事里Alonso效力的车队,再筛选出每场赛事中属于该车队的所有车手(包括Alonso本人)即可。
分步实现代码
- 生成赛事与Alonso所属车队的映射字典:
# 提取Alonso每场赛事的车队信息,转换为字典 race_to_alonso_team = df[df['driver'] == 'Alonso'].set_index('race')['team'].to_dict()
- 为原DataFrame添加临时列,标记每场赛事对应的Alonso车队:
df['alonso_current_team'] = df['race'].map(race_to_alonso_team)
- 筛选车队与Alonso当场车队一致的行,最后移除临时列:
filtered_df = df[df['team'] == df['alonso_current_team']].drop(columns='alonso_current_team')
一行简化写法
如果追求简洁,可将步骤合并为一行(逻辑与分步一致):
filtered_df = df[df['team'] == df['race'].map(df[df['driver'] == 'Alonso'].set_index('race')['team'])]
结果验证
运行后得到的filtered_df即为目标数据集:
race driver team ...
1 Alonso Ferrari
1 Massa Ferrari
2 Alonso McLaren
2 Hamilton McLaren
...
内容的提问来源于stack exchange,提问作者Doyle Rudolph
相关产品推荐
相关产品推荐

