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

如何对落入特定pd.Interval区间的price_interest值求和并合并DataFrame?

实现步骤

1. 为第二个DataFrame匹配对应区间

先基于第一个DataFrame构建zip到对应区间列表的映射,再给第二个DataFrame的每条数据找到所属的binned区间:

# 构建zip到区间列表的字典
zip_to_bins = df1.groupby('zip')['binned'].unique().to_dict()

# 定义函数查找每条数据对应的区间
def match_bin(row):
    for interval in zip_to_bins[row['zip']]:
        if row['listing_close_price'] in interval:
            return interval
    return None  # 处理不在任何区间的异常数据

# 为df2添加binned列
df2['binned'] = df2.apply(match_bin, axis=1)

2. 分组求和price_interest

按zip和binned分组,对price_interest求和:

summed_interest = df2.groupby(['zip', 'binned'])['price_interest'].sum().reset_index(name='total_price_interest')

3. 合并到第一个DataFrame

将求和结果与原df1合并,得到目标列:

# 左连接保留df1所有数据,无匹配的用0填充(可选)
df1 = df1.merge(summed_interest, on=['zip', 'binned'], how='left').fillna({'total_price_interest': 0})

补充说明

  • 如果存在listing_close_price不在任何区间的情况,上述代码会将其标记为None,分组时会被排除,最终df1对应位置会填充0(如果用了fillna)。
  • 若df1中每个zip的binned区间是唯一且不重叠的,这个方法可以保证每个价格只会匹配到一个区间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:50:41