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

pandas DataFrame统计列表列元素落在元组区间内的数量实现方法

实现方案

以下两种方案可根据你的数据量灵活选择,输出结果均匹配预期:

小数据量场景(万行级别以内)

用apply逐行处理,写法最简洁,维护成本最低:

import pandas as pd

# 示例数据构造
df = pd.DataFrame({
    't': [(1,2), (0,5), (0,4)],
    'l': [[1,2,3,4,5,6], [1,4,9], [9,11]]
})

# 新增counter列
df['counter'] = df.apply(lambda row: sum(row['t'][0] <= x <= row['t'][1] for x in row['l']), axis=1)

大数据量场景(十万行级别以上)

用explode展开列表列后做向量化判断,避免逐行操作开销,性能更高:

# 展开l列,保留原索引
df_explode = df.explode('l', ignore_index=False)
# 批量判断元素是否在对应区间内
mask = (df_explode['l'] >= df_explode['t'].str[0]) & (df_explode['l'] <= df_explode['t'].str[1])
# 按原索引分组统计数量并回写
df['counter'] = mask.groupby(mask.index).sum()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:36:09