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

如何对Pandas列进行GroupBy操作并保留其他列的独立值?

实现DataFrame分组去重列值的格式化展示

原始DataFrame格式

Team      Time     App
1         10:00    xxxx
1         12:00    yyyy
1         12:00    zzzz
2         11:00    aaaa

目标格式

Team            Time         App
1               10:00        xxxx
                12:00        yyyy
                             zzzz
2               11:00        aaaa

解决方案

你用的melt函数是用于宽表转长表的,不适用当前场景。可以用pandas的duplicated()方法标记重复值,再将重复值替换为空字符串来实现需求:

import pandas as pd

# 构造示例数据
data = {
    'Team': [1, 1, 1, 2],
    'Time': ['10:00', '12:00', '12:00', '11:00'],
    'App': ['xxxx', 'yyyy', 'zzzz', 'aaaa']
}
df = pd.DataFrame(data)

# 处理Team列:仅保留每组第一个值,其余置空
df['Team'] = df['Team'].where(~df['Team'].duplicated(), '')
# 处理Time列:仅保留同一Team下每组Time的第一个值,其余置空
df['Time'] = df['Time'].where(~df.duplicated(['Team', 'Time']), '')

# 输出格式化后的结果
print(df.to_string(index=False))

运行后输出的结果将与目标格式完全一致,核心逻辑是通过duplicated()识别重复行,再用where()保留非重复值,把重复值替换为空字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:52:35