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

如何用Pandas实现按Date和ID分组且不重复显示对应值?

实现重复Date/ID单元格空白的分组显示方案

核心思路是标记重复的Date和ID行,将这些重复行的对应单元格设为空值,既保留所有原始数据,又能实现分组后不重复显示的效果,最终直接导出Excel即可。

步骤1:还原示例DataFrame

先复现你的数据结构:

import pandas as pd

data = {
    'Date': ['01-01-2023', '01-01-2023', '01-01-2023', '02-01-2023', '02-01-2023', '02-01-2023'],
    'ID': ['123', '123', '839', '123', '942', '942'],
    'Brand': ['Apple', 'Microsoft', 'Oneplus', 'Samsung', 'LG', 'Samsung'],
    'Product': ['Macbook', 'Surface', '9T', 'S10', 'V10', 'S23']
}

df = pd.DataFrame(data)

步骤2:处理重复的Date和ID

用duplicated()方法判断重复项,将重复的分组单元格替换为空字符串:

# 仅保留每个Date的第一行显示,其余重复Date设为空
df['Date'] = df['Date'].where(~df['Date'].duplicated(), '')
# 按Date分组后,仅保留每组内每个ID的第一行显示,其余重复ID设为空
df['ID'] = df.groupby('Date')['ID'].transform(lambda x: x.where(~x.duplicated(), ''))

处理后的DataFrame效果如下:

DateIDBrandProduct
01-01-2023123AppleMacbook
MicrosoftSurface
839Oneplus9T
02-01-2023123SamsungS10
942LGV10
SamsungS23

步骤3:导出至Excel

直接使用Pandas的导出方法,注意关闭索引列:

df.to_excel('grouped_output.xlsx', index=False)

补充说明

  • 该方案完全保留原始数据,仅修改分组列的重复显示,符合Excel中常见的分组排版需求。
  • 若后续需要恢复原始数据,只需保留最初的DataFrame副本即可,修改操作未影响原始数据结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:53:01