You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas合并DataFrame时匹配对应分组的最低Price?

解决方案

你可以先对df1按分组字段聚合出每组的最低价格,再和原df合并,这样既保留df的所有行,又能匹配到对应分组的最低Price,同时不会修改原始的df1数据。

步骤1:生成仅包含最低价格的临时DataFrame

先对df1按Origin、Destination、Service分组,提取每组的最低Price:

# 生成分组后保留最低Price的临时表,不修改原df1
df1_min_price = df1.groupby(['Origin', 'Destination', 'Service'], as_index=False)['Price'].min()

步骤2:用临时表和原df合并

用这个临时表和df做左合并,就能得到想要的结果:

df2 = pd.merge(df, df1_min_price, 
               how='left',
               on=['Origin', 'Destination', 'Service'])

结果说明

  • 原df的所有行都会被保留,不会因为df1的重复行产生额外的重复记录
  • 每个分组匹配到的是df1中的最低Price
  • 原始df1的数据完全保留,不影响后续使用

内容的提问来源于stack exchange,提问作者Fold_In_The_Cheese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 08:25:01