Python处理Excel数据:基于xlrd与xlwt的去重及求和实现

桃夭
桃夭
发布时间:2026-10-13| 3人浏览过
原创

本文介绍使用Python标准库xlrd和xlwt处理Excel文件的去重与求和方法。通过读取指定列数据,利用字典结构对小区名称进行分组,分别累加总端口数与已使用端口数,最终生成新的Excel文件。该方法适用于需要合并重复项并统计数值的基础数据处理场景。

直接切入主题,编写这段代码的过程并不轻松,仅调试就耗费了约两个小时。期间尝试了多种实现方案,但均因各种兼容性或逻辑问题未能成功,最终才确定当前的解决路径。

这一过程也反映出对Python中可变对象与不可变对象区别的理解尚不够深入,导致在数据处理时走了不少弯路。

经过反复尝试,最终采用了一种较为直观但效率一般的笨办法完成了任务。

#coding:utf-8
import xlrd
import xlwt
import os
from collections import Counter
workbook = xlrd.open_workbook(r'D:\hh\heli\a.xlsx')
Sheet1 = workbook.sheet_by_name('Sheet1')
clos_a=Sheet1.col_values(1)
clos_b=Sheet1.col_values(4)
clos_c=Sheet1.col_values(5)
wbk = xlwt.Workbook()
sheet = wbk.add_sheet(u'初始表')
sheet.write(0, 0, u'小区')
sheet.write(0, 1, u'总端口数')
sheet.write(0, 2, u'已使用端口数')
test=('D:\hh\heli\\美女你好.xls').decode('utf-8') #表名是不是让你想入非非了,哈哈
result = []
list_m=map(lambda x,y:[x,y],clos_a,clos_b)
list_n=map(lambda q,w:[q,w],clos_a,clos_c)
dic={}
dic_a={}
def read_excel():
  while test is True:
    os.remove(test)
  else:
    for elem in list_m:
      key=elem[0]
      if key in dic:
        dic[key]+=elem[1]
      else:
        dic[key]=elem[1]
    for elem_a in list_n:
      key_a = elem_a[0]
      if key_a in dic_a:
        dic_a[key_a]+=elem_a[1]
      else:
        dic_a[key_a] = elem_a[1]
  item=list(dic)
  item_a=list(dic_a)
  for i in range(1,len(item)):
    sheet.write(i,0,item[i])
    sheet.write(i,1,dic[item[i]])
  for p in range(1,len(item_a)):
    sheet.write(p,2,dic_a[item_a[p]])
  wbk.save(test)
if __name__ == "__main__":
  read_excel()

以上就是利用Python对Excel文档进行去重及求和处理的完整示例,希望能为遇到类似问题的开发者提供参考,也欢迎继续支持本站获取更多技术分享。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。