惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Schneier on Security
Schneier on Security
C
Cisco Blogs
Help Net Security
Help Net Security
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
Know Your Adversary
Know Your Adversary
Hacker News: Ask HN
Hacker News: Ask HN
Cisco Talos Blog
Cisco Talos Blog
A
Arctic Wolf
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
WordPress大学
WordPress大学
小众软件
小众软件
Jina AI
Jina AI
量子位
T
Threatpost
Forbes - Security
Forbes - Security
L
LINUX DO - 最新话题
S
Securelist
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
Cyber Attacks, Cyber Crime and Cyber Security
有赞技术团队
有赞技术团队
博客园_首页
T
Threat Research - Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
The Exploit Database - CXSecurity.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Scott Helme
Scott Helme
博客园 - 【当耐特】
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Last Watchdog
The Last Watchdog
Attack and Defense Labs
Attack and Defense Labs
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
SecWiki News
SecWiki News
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
The Cloudflare Blog
S
Schneier on Security
爱范儿
爱范儿
N
News and Events Feed by Topic
NISL@THU
NISL@THU
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 尘梦

calude code 2.188 根据cli.map还原 centos6 安装gcc 多版本 自定义编译bulma 神通mysql模式转 mysql ai数学书籍 chromedriver 网络安全渗透测试写法 编译php需要的扩展 vue table 表格记录选中 linux wktohtmlpdf 结合/tmp路径 无法创建问题 c语言开发 php扩展 sm4 macos php 如何链接神通数据库aci layui table tr a标签倒计时 操作 刷新以后继续倒计时 使用c# 开发 php的com组件 世界级地图数据处理 及 联动效果 php 结合pcntl_fork导出excel数据 使用 python 部署chatglm2b macos 下连接php 人大金仓pdo_kdb问题 php curl 多次发送
python 合并同列数据 组合 新的excel
尘梦 · 2024-10-21 · via 博客园 - 尘梦

import pandas as pd
from openpyxl import load_workbook

# 读取Excel文件
file_path = 'test.xlsx'  # 替换为你的Excel文件路径
df = pd.read_excel(file_path)

# 显示读取的数据
print(df)

# 打开工作簿
wb = load_workbook(file_path)
ws = wb.active  # 获取活动工作表

# 假设我们要合并的列是第1列(A列),从第二行开始(假设第一行为标题)
start_row = 2
last_row = ws.max_row

# 用于存储上一个唯一值以检测变化
previous_value = None
merge_start_row = None

# 遍历每一行
for row in range(start_row, last_row + 1):
    current_value = ws[f'A{row}'].value  # 第一列的值
    
    # 检测当前值与上一个值
    if current_value == previous_value:
        # 如果值相同,继续合并
        continue
    else:
        # 如果发现新的值,合并之前的单元格(如果有)
        if merge_start_row is not None and row - merge_start_row > 1:
            # 根据合并的行数分别合并其他列
            for col in range(2, 8):  # 从第2列到最后一列
                ws.merge_cells(start_row=merge_start_row, start_column=col, end_row=row - 1, end_column=col)
        
        # 更新为新值
        previous_value = current_value
        merge_start_row = row

# 最后合并最后一组相同的值(如果有)
if merge_start_row is not None and last_row - merge_start_row > 0:
    for col in range(2, 8):
        ws.merge_cells(start_row=merge_start_row, start_column=col, end_row=last_row, end_column=col)

# 保存合并后的文件
wb.save('merged_cells.xlsx')  # 可以另存为新文件