如何对DataFrame中同用户同操作同时间的同义目标值仅计数一次?
解决方法
假设你使用Pandas处理DataFrame,可按以下步骤实现需求:
统一同义Target值
先将指代同一含义的不同target值映射为统一标识,比如把"商品详情页"和"goods_detail"这类同义值都映射成"商品详情":# 根据你的实际同义规则定义映射字典 target_mapping = {"商品详情页": "商品详情", "goods_detail": "商品详情", "首页": "主页", "home_page": "主页"} df["standard_target"] = df["target"].map(target_mapping)去重后统计数量
按照user-id、created_at、action这三列去重(这三列完全相同的行仅保留一条),再统计标准化后target的数量:# 按指定列去重,保留唯一记录 deduplicated_df = df.drop_duplicates(subset=["user-id", "created_at", "action"]) # 统计每个标准化target的出现次数 count_result = deduplicated_df["standard_target"].value_counts().reset_index() count_result.columns = ["标准化目标", "统计数量"]
按照上述逻辑处理你提供的示例数据,最终就能得到统计值为2的结果。
内容的提问来源于stack exchange,提问作者bengisu yilmaz
相关产品推荐
相关产品推荐

