在工作中经常遇到需要将数据输出到excel,且需要对其中一些单元格进行合并,比如如下表表格,需要根据a列的值,合并b、c列的对应单元格

pandas中的to_excel方法只能对索引进行合并,而xlsxwriter中,虽然提供有merge_range方法,但是这只是一个和基础的方法,每次都需要编写繁琐的测试才能最终调好,而且不能很好的重用。所以想自己写一个方法,结合dataframe和merge_range。大概思路是:

1、定义一个my_dataframe类,继承dataframe类,这样能很好的利用pandas的很多特性,而不用自己重新组织数据结构。

2、定义一个my_mergewr_excel方法,参数分别为:输出excel的路径、用于判断是否需要合并的key_cols列表、用于指明哪些列上的单元格需要被合并的列表

3、将my_dataframe封装为一个my_module模块,以备重用。

合并的算法如下:

1、根据给定参数的【关键列】,进行分组计数和排序,添加cn和rn两个辅助列

2、判断cn大于1的,该分组需要合并,否则该分组(行)无需合并(cn=1说明这个分组数据行是唯一的,无需合并)

3、对应需要合并的分组,判断当前列是不是在给定参数【合并列】中,是则用合并写excel单元格,否则就是普通的写excel单元格。

4、在需要合并的列中,如果对于的rn=1则调用merge_range,一次性写想下写cn个单元格,如果rn>1则跳过该单元格,因为在rn=1的时候,已经合并写了该单元格,若再重复调用erge_range,打开excel文档时会报错。

用图解释如下:

具体代码如下:

?

调用代码:

?

效果如下:

也可以设置合并a、b列:

?

效果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/cakecc2008/article/details/59203980

python html网页合并单元格,python之DataFrame实现excel合并单元格相关推荐

  1. python合并word单元格_python之DataFrame实现excel合并单元格_python

    这篇文章主要为大家详细介绍了python之DataFrame实现excel合并单元格,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在工作中经常遇到需要将数据输出到excel,且需要对其中一些单元 ...

  2. Python将网页转化为PDF(python网页自动长截图)

    初次实践:python网页自动截图 步骤如下: (1) 安装python selenium 库,推荐使用pip快速安装最新版本 pip install selenium (2) 检查Chrome浏览器 ...

  3. mac如何用python爬网页数据_Mac——利用Python进行网页爬取

    Mac--利用Python进行网页爬取 目标:利用Python爬取网页中的指定内容,例如,爬取百度百科网页中四川省的别名.html 输出:四川省的别名为:川.蜀.天府之国python 我的经验,网页爬 ...

  4. python写网页插件_用python 实现activex网页控件

    首先,这个东东貌似只有windows上才能实现,所以,需要部署windows下的相关环境 1.需要安装python 2.安装python的win32com的lib,下载地址: 3.安装本地的web容器 ...

  5. html统计表合并单元格的快捷键,多个单元格内容合并为一个单元格,3种用法-excel合并单元格快捷键...

    如何将多个单元格内容合并成一个单元格?想要实现这个效果,其实有很多种办法.比如说借助记事本.剪切板或者两端对齐都可以实现的,不过本期帮主不想介绍这些种方法,主要是推荐3个函数的用法. 第一种:连字符& ...

  6. python自动网页抢_用Python写个了红包提醒,再不怕错过一个亿了

    又到了辞旧迎新的时候,群里的红包也多起来了.然而大佬们总是喜欢趁我不在的时候发红包,经常打开手机,发现红包已被抢完,感觉错过了一个亿. 安卓上有不少红包助手工具,但 iOS 似乎没有.而且就算有,这种 ...

  7. python 提取网页正文_用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事...

    ↑ 关注 + 星标 ,每天学Python新技能后台回复[大礼包]送你Python自学大礼 导读:这篇文章利用简单的Python爬虫.邮件发送以及定时任务实现了每天定时发送睡前小故事的功能,是一篇步骤详 ...

  8. python下载网页歌词_使用Python下载歌词并嵌入歌曲文件中的实现代码

    使用python扫描本地音乐并下载歌词这次这个真的是干货哦,昨晚弄了半晚上,,,,从8点吃完饭就开始写,一直到了快12点才弄好,,,新手,伤不起呀.... 先简单的说下吧,百度提供了一个音乐搜索的ap ...

  9. python制作网页系统_使用python静态网页生成工具pelican快速在github上部署网站博客...

    简介 Pelican用Python编写的静态站点生成器.亮点: 使用reStructuredText或Markdown格式直接用编辑器编写内容 简单的CLI工具来(重新)生成站点 易于与分布式版本控制 ...

最新文章

  1. 【spring源码分析】IOC容器初始化(六)
  2. FPGA之道(37)Verilog中的编写注意事项
  3. 使用 jQuery 修改 DOM 方法
  4. 技术部门Leader是不是一定要技术大牛担任?
  5. Java编码约定被认为是有害的
  6. Vue中插槽slot的使用
  7. 点计算机没有本地磁盘,快速解决WinPE系统下没有本地磁盘的方法
  8. SQL Server2019 Express下载安装教程-——孟师傅
  9. java怎么制作网页_如何制作网页
  10. 浙江大学计算机学院足球队,校三好杯 | 海洋学院足球队:再创佳绩
  11. 批量替换 Word 文档前几页
  12. 第四周项目1---建立单链表
  13. 台式计算机如何上网设置,台式电脑怎样设置宽带自动连接?
  14. HCIP-DATACOM H12-831(161-180)
  15. word表格导出为图像
  16. FFplay文档解读-20-音频过滤器五
  17. Python 发邮件(500, b‘Error: bad syntax‘)
  18. Linux开机报init错误,你好,Linux系统启动报kernelpanic- not syncing: attempted to kil init! 网上的办法我试了没有解决。...
  19. Spring Boot整合JWT实现用户认证(附源码)
  20. java UTC时间格式转换

热门文章

  1. 字符设备驱动基础笔记
  2. 非识不可C3D模型详解
  3. SteamVR 2.x 传送机制
  4. 计算机辅助药物设计助力中药研究
  5. 卷积神经网络 CNN 基础介绍
  6. 关于window10系统命令行界面无法显示中文的坑
  7. Windows中mfc120.dll缺少的解决方法
  8. RPKM FPKM TPM RSEM
  9. 阿里云备案成功的域名能用腾讯云的服务器吗?
  10. python 光标位置输入文字_colorama-用于生成彩色的终端文本和光标定位的python库.tar...