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

Pandas按条件统计Series唯一值:统计仅在x类别预订的唯一车辆数

实现方案

核心逻辑用pandas原生向量化运算实现,全程无Python层循环,处理百万级以上数据也能保证性能:

  1. 先提取所有不在x分类下出现过的车牌集合
  2. 在x分类的车牌中过滤掉上述集合,剩下的就是仅在x分类下有预订记录的车牌,统计唯一值数量即可

示例代码

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'booking_id': range(1, 11),
    'booking_category': ['x','x','y','y','z','z','z','z','x','x'],
    'vehicle_number': ['abc','def','abc','ghi','ghi','ghi','abc','abc','def','ghi']
})

# 核心运算逻辑
# 提取所有非x分类下的车牌
non_x_vehicles = df.loc[df['booking_category'] != 'x', 'vehicle_number'].unique()
# 筛选仅在x分类下出现的车牌并统计唯一值
result = df.loc[
    (df['booking_category'] == 'x') & (~df['vehicle_number'].isin(non_x_vehicles)),
    'vehicle_number'
].nunique()

print(result) # 输出结果:1

可选分组实现(适合小数据量)

如果更看重逻辑直观性,数据量不大的场景也可以用分组聚合实现:

# 按车牌分组,判断对应分类是否仅包含x
only_x_mask = df.groupby('vehicle_number')['booking_category'].agg(
    lambda cate: set(cate) == {'x'}
)
result = only_x_mask.sum()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:24:04