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

如何利用Python 2.7实现按相同Title值合并Excel工作表行?

Hi Jennifer,当然可以用Python 2.7实现基于相同Title值合并Excel行的需求!下面我会给出两种实用的解决方案,你可以根据自己的数据源格式和需求来选择:

在Python 2.7中基于相同Title合并Excel行的解决方案

方法一:使用pandas库(简洁高效)

pandas是处理表格数据的利器,虽然Python 2.7已停止官方维护,但我们可以安装兼容的旧版本来完成任务。

步骤1:安装兼容的依赖库

在命令行执行以下命令,安装适配Python 2.7的版本:

pip install pandas==0.24.2 xlrd==1.2.0 openpyxl==2.6.4
  • pandas==0.24.2:最后一个支持Python 2.7的pandas稳定版本
  • xlrd==1.2.0:支持读取传统.xls格式文件
  • openpyxl==2.6.4:支持读取现代.xlsx格式文件

步骤2:代码实现

假设你的源Excel文件是source.xlsx,包含Title、Description、Quantity三列,需求是:相同Title的行合并,Description用逗号拼接不同内容,Quantity求和。代码如下:

import pandas as pd

# 读取源文件(如果是.xls格式,将engine参数改为'xlrd')
df = pd.read_excel('source.xlsx', engine='openpyxl')

# 定义聚合规则:按Title分组,自定义各列的合并逻辑
aggregation_rules = {
    'Description': lambda x: ', '.join(x.astype(str)),
    'Quantity': 'sum'
}

# 执行分组合并
merged_df = df.groupby('Title').agg(aggregation_rules).reset_index()

# 保存结果到新文件(.xls格式用engine='xlrd')
merged_df.to_excel('merged_result.xlsx', index=False, engine='openpyxl')
print("合并完成,结果已保存到merged_result.xlsx")

如果你的合并需求不同(比如保留某列的第一个值),只需修改aggregation_rules即可,比如用'first'代替求和逻辑。


方法二:使用xlrd+xlwt库(原生Excel操作)

如果你不想依赖pandas,也可以用原生的Excel处理库xlrd(读取)和xlwt(写入)实现,适合需要精细控制Excel格式的场景。

步骤1:安装依赖库

pip install xlrd==1.2.0 xlwt==1.3.0

步骤2:代码实现

以下代码适用于.xls格式文件,实现相同Title的行合并,其他列值用逗号拼接:

import xlrd
import xlwt

# 读取源Excel文件
workbook = xlrd.open_workbook('source.xls')
sheet = workbook.sheet_by_index(0)

# 获取表头并定位Title列的位置
headers = sheet.row_values(0)
title_col_idx = headers.index('Title')

# 用字典存储每个Title对应的合并后数据
merged_data = {}
for row_idx in range(1, sheet.nrows):
    row_values = sheet.row_values(row_idx)
    current_title = row_values[title_col_idx]
    
    if current_title not in merged_data:
        # 首次遇到该Title,初始化数据
        merged_data[current_title] = row_values.copy()
    else:
        # 合并非Title列的内容(逗号分隔,可按需修改)
        for col_idx in range(len(row_values)):
            if col_idx != title_col_idx:
                merged_data[current_title][col_idx] = f"{merged_data[current_title][col_idx]}, {row_values[col_idx]}"

# 创建新Excel文件并写入数据
new_workbook = xlwt.Workbook()
new_sheet = new_workbook.add_sheet('Merged Result')

# 写入表头
for col_idx, header in enumerate(headers):
    new_sheet.write(0, col_idx, header)

# 写入合并后的数据
row_num = 1
for title, values in merged_data.items():
    for col_idx, value in enumerate(values):
        new_sheet.write(row_num, col_idx, value)
    row_num += 1

# 保存结果
new_workbook.save('merged_result.xls')
print("合并完成,结果已保存到merged_result.xls")

额外提示

  1. 请根据源文件格式(.xls或.xlsx)选择对应的代码和依赖;
  2. 如果文件包含多个工作表,可通过sheet_by_name('Sheet名称')指定要处理的工作表;
  3. Python 2.7已停止官方维护,若后续有长期开发需求,建议逐步升级到Python 3.x版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:09:48