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

推荐订阅源

F
Fortinet All Blogs
C
Check Point Blog
GbyAI
GbyAI
博客园 - 司徒正美
爱范儿
爱范儿
N
Netflix TechBlog - Medium
H
Hacker News: Front Page
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Security Latest
Security Latest
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - Franky
Recent Announcements
Recent Announcements
P
Privacy International News Feed
T
Tor Project blog
Y
Y Combinator Blog
有赞技术团队
有赞技术团队
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
G
GRAHAM CLULEY
The Hacker News
The Hacker News
N
News and Events Feed by Topic
I
Intezer
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
PCI Perspectives
PCI Perspectives
S
Secure Thoughts
P
Proofpoint News Feed
Microsoft Security Blog
Microsoft Security Blog
IT之家
IT之家
T
Threat Research - Cisco Blogs
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
DataBreaches.Net
Hacker News - Newest:
Hacker News - Newest: "LLM"
Last Week in AI
Last Week in AI
H
Help Net Security
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
Help Net Security
Help Net Security
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Google Online Security Blog
Google Online Security Blog
Cyberwarzone
Cyberwarzone
T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
Forbes - Security
Forbes - Security
Apple Machine Learning Research
Apple Machine Learning Research
O
OpenAI News
AWS News Blog
AWS News Blog
月光博客
月光博客

博客园 - 尘梦

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')  # 可以另存为新文件