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

如何基于布尔条件为DataFrame补全用户未访问页面记录

Pandas补全用户未访问页面记录实现方案

你可以通过生成用户与页面的全量组合、关联原访问数据打标的方式实现需求,具体步骤和代码如下:

  • 提取数据集中所有独立用户ID、所有独立页面ID,生成两者的笛卡尔积,得到「每个用户对应所有页面」的全量记录基础表
  • 给原始访问数据集新增visit字段,固定赋值为1,标记这些是已访问记录
  • 用全量基础表左连接原始访问表,未匹配到关联记录的行就是用户未访问的页面,将这部分行的visit空值填充为0即可

代码示例

首先构造初始测试数据集:

import pandas as pd

# 初始访问数据
df = pd.DataFrame({
    'userID': [1, 1, 2],
    'pageID': [1, 2, 1]
})

核心处理逻辑:

# 生成用户+页面的全量组合
all_pairs = pd.MultiIndex.from_product(
    [df['userID'].unique(), df['pageID'].unique()],
    names=['userID', 'pageID']
).to_frame(index=False)

# 原始数据标记已访问
df['visit'] = 1

# 关联补全数据,填充未访问标记
final_df = all_pairs.merge(
    df, 
    on=['userID', 'pageID'], 
    how='left'
).fillna({'visit': 0})

# 字段类型转成整数,和预期格式一致
final_df['visit'] = final_df['visit'].astype(int)

执行后打印final_df即可得到目标结果:

userID  pageID  visit
0       1       1      1
1       1       2      1
2       2       1      1
3       2       2      0

说明:该逻辑默认基于现有数据中出现过的页面集合做补全,如果需要纳入未在访问记录里出现过的新页面,只要把对应pageID加入全量页面ID的列表即可,核心逻辑不需要调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 00:03:48