如何使用Pandas按passengerId分组获取每个乘客的from和to列所有值
你之前代码的问题在于:groupby传入了['passengerId','from', 'to']三个字段作为分组键,会将这三个字段取值都相同的行归为同一组,完全不符合仅按passengerId分组统计的需求。
根据你的使用场景,可以选择以下两种实现方式:
- 场景1:需要每个
passengerId仅占一行,每行存储该乘客对应的所有from、to唯一取值
res = flights.groupby('passengerId')[['from', 'to']].agg( lambda col: list(col.dropna().unique()) ).reset_index()
- 场景2:需要保留多行结构,仅去重重复的
passengerId+from+to组合,直观展示每个乘客的所有行程段
res = flights[['passengerId', 'from', 'to']].drop_duplicates().sort_values('passengerId')
内容的提问来源于stack exchange,提问作者elnino
相关产品推荐
相关产品推荐

