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

如何用Pandas识别数据集中的重复用户与唯一用户

Pandas用户跨天行为统计方案

示例数据集

dsuseridunique_content_id
2024-01-2618fd
2024-01-2627rt
2024-01-2646as
2024-01-27245t
2024-01-2718fd
2024-01-2727rt
2024-01-2846as
2024-01-28745t
2024-01-28749t
2024-01-2946as
2024-01-29245t

实现思路与步骤

核心是通过统计每个用户出现的唯一日期数,区分跨天重复用户和仅访问一天的用户:

  • 先按userid分组,用nunique()统计每个用户对应的不同日期数量(自动忽略同一用户同一天的多条交互记录)
  • 按日期数筛选两类用户并统计总数:
    • 跨天重复用户:日期数≥2的用户
    • 唯一用户:日期数=1的用户

完整代码

import pandas as pd

# 加载数据集(如果是本地文件,可替换为pd.read_csv/pd.read_excel等)
data = {
    'ds': ['2024-01-26', '2024-01-26', '2024-01-26', '2024-01-27', '2024-01-27',
           '2024-01-27', '2024-01-28', '2024-01-28', '2024-01-28', '2024-01-29', '2024-01-29'],
    'userid': [1, 2, 4, 2, 1, 2, 4, 7, 7, 4, 2],
    'unique_content_id': ['8fd', '7rt', '6as', '45t', '8fd', '7rt', '6as', '45t', '49t', '6as', '45t']
}
df = pd.DataFrame(data)

# 统计每个用户的唯一日期数
user_day_count = df.groupby('userid')['ds'].nunique()

# 计算并输出结果
repeat_users_num = user_day_count[user_day_count >= 2].count()
unique_users_num = user_day_count[user_day_count == 1].count()

print(f"跨天重复用户:{repeat_users_num}位用户有重复记录")
print(f"唯一用户:{unique_users_num}位用户仅访问一天")

运行结果

跨天重复用户:3位用户有重复记录
唯一用户:1位用户仅访问一天

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:19:53