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

如何用numpy.where判断同一ID是否对应不同DATE值

解决方案

要实现判断同一ID是否存在不同DATE值,并给对应行标记YES/NO,你原来的思路里仅用Count>1是不够的(比如ID222的Count是2但DATE完全相同),正确的做法是先按ID分组统计DATE的唯一值数量,再生成标记列:

步骤1:生成每个ID是否存在多DATE的标记列

用groupby+transform直接在原DataFrame中添加标记,判断每个ID对应的DATE唯一值数量是否大于1:

import pandas as pd
import numpy as np

# 假设你的df已经加载完成
df['has_multiple_dates'] = df.groupby('ID')['DATE'].transform('nunique') > 1

步骤2:用np.where生成最终的FULFILL?列

基于上面的标记列,直接生成结果:

df['FULFILL?'] = np.where(df['has_multiple_dates'], 'YES', 'NO')

验证结果

运行后你的DataFrame会得到期望的输出:

IDCountDATEhas_multiple_datesFULFILL?
111301/01/2020TrueYES
222202/12/2020FalseNO
111301/01/2020TrueYES
222202/12/2020FalseNO
111302/10/2020TrueYES
333201/25/2020TrueYES
333205/02/2020TrueYES
444101/01/2020FalseNO

如果不需要保留has_multiple_dates列,直接合并成一行代码也可以:

df['FULFILL?'] = np.where(df.groupby('ID')['DATE'].transform('nunique') > 1, 'YES', 'NO')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:55:46