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

如何筛选仅由单一seller配送的order_id对应的DataFrame行

实现方法

可以用pandas的分组+筛选快速实现,核心思路是先找出所有卖家唯一的订单ID,再用这些ID提取原数据中对应的行。

方法一:分组筛选ID后匹配

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'order_id': [1,1,2,2,2,3,4,4,5],
    'product': ['apple','grape','orange','strawberry','apple','apple','kiwi','orange','grape'],
    'seller': ['a','a','a','b','b','b','a','a','c']
})

# 1. 筛选出所有卖家唯一的订单ID
valid_order_mask = df.groupby('order_id')['seller'].nunique() == 1
valid_order_ids = valid_order_mask[valid_order_mask].index

# 2. 提取原数据中符合条件的行
result = df[df['order_id'].isin(valid_order_ids)]
print(result)

方法二:用transform简化代码(更简洁)

# 直接通过transform将分组计算结果广播到每行,再筛选
result = df[df.groupby('order_id')['seller'].transform('nunique') == 1]
print(result)

两种方法都能得到目标输出,方法二更精简——transform会把分组统计的卖家唯一数映射到该订单的每一行,直接通过条件判断就能筛选出符合要求的所有行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:52:02