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

如何提取不同Party存在共有日期的Pandas DataFrame行

问题原因

你原来使用的代码df.loc[df['Date & Time'].dt.date.duplicated(keep=False)]仅判断了日期是否重复出现,没有区分重复的日期是否属于不同Party,因此会保留同一个Party下同一日期的多条记录,不符合跨Party共有日期的筛选要求。

正确实现思路

我们需要筛选出至少被2个不同Party使用的日期,再取出这些日期对应的全部行:

  • 第一步:从datetime字段中提取纯日期维度
  • 第二步:按日期分组,统计每个日期对应的唯一Party数量,保留唯一Party数量≥2的日期
  • 第三步:从原表中过滤出属于上述日期的所有行

完整代码示例

# 新增临时列存储纯日期(忽略时间)
df['date_only'] = df['Date & Time'].dt.date
# 筛选出跨Party共有的日期
shared_dates = df.groupby('date_only')['Party'].nunique()[lambda x: x >= 2].index
# 过滤得到符合要求的结果,可按需删除临时辅助列
result = df[df['date_only'].isin(shared_dates)].drop(columns='date_only')

无临时列简化版本

如果不想新增辅助列,可以直接合并逻辑:

result = df[df['Date & Time'].dt.date.map(
    df.groupby(df['Date & Time'].dt.date)['Party'].nunique() >= 2
)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:57:01