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

如何为分组后的DataFrame创建标识Location唯一性的布尔列

为分组后的DataFrame添加唯一性判断列

需求说明

为分组后的DataFrame创建布尔列Unique,规则是:在每个分组子集中,若Location值仅出现一次则为True,否则为False。

原数据与修正后的分组代码

注意:原代码中groupby的Name列不存在,实际应为ID列,修正后的代码如下:

import pandas as pd

dataset = {
    'ID': ['One', 'One', 'One', 'Five', 'Five','Five','Four'],
    'Day': [2, 2, 2, 1, 1,1,0],
    'Location': ['London', 'London', 'Paris', 'London', 'Paris','Paris','Berlin']}

df = pd.DataFrame(dataset)
# 按ID和Day分组
df_grouped = df.groupby(['ID','Day'])

解决方案

推荐两种简洁实现方式:

方法1:利用duplicated取反(更高效)

# 标记分组内所有重复的Location行,取反后得到唯一性判断
df['Unique'] = ~df_grouped['Location'].duplicated(keep=False)

方法2:结合transform与value_counts

# 计算每个分组内Location值的出现次数,判断是否等于1
df['Unique'] = df_grouped['Location'].transform(lambda x: x.map(x.value_counts()) == 1)

验证结果

执行后df['Unique']的输出与预期一致:

0    False
1    False
2     True
3     True
4    False
5    False
6     True
Name: Unique, dtype: bool

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:06:24