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

Pandas如何实现单行多值赋值,合并重复用户列仅展示差异化内容

实现方案

完整代码

import pandas as pd

# 构造示例数据,可替换为你自己的DataFrame
data = {
    'USER_ID': [1, 1],
    'USER_NAME': ['Ahmad Anis', 'Ahmad Anis'],
    'USER_REPUTATION': [123, 123],
    'NUMBER_OF_ANSWERS': [2, 2],
    'NUMBER_OF_QUESTIONS': [3, 3],
    'BADGE_NAME': ['Topper', 'programmer'],
    'BADGE_CAT': ['HTML', 'Random']
}
df = pd.DataFrame(data)

# 定义需要批量隐藏重复值的列
cols_to_process = ['USER_ID', 'USER_NAME', 'USER_REPUTATION', 'NUMBER_OF_ANSWERS', 'NUMBER_OF_QUESTIONS']

# 核心逻辑:同组内非首行的指定列替换为空字符串
df[cols_to_process] = df[cols_to_process].mask(
    df.groupby(cols_to_process).cumcount() > 0,
    ''
)

# 输出markdown格式表格验证结果
print(df.to_markdown())

逻辑说明

  • groupby(cols_to_process)会把所有指定列值完全一致的行归为同一组
  • cumcount()会给每组内的行按顺序生成从0开始的编号
  • mask()方法会将满足条件(编号>0,即组内非首行)的单元格替换为空字符串,实现重复内容隐藏的效果
  • 如果业务上只需要按USER_ID维度去重,将groupby(cols_to_process)改为groupby('USER_ID')即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 12:06:07