【附代码】Python Excel合并单元格(OpenPyXL) Pandas.DataFrame groupby样式保存xlsx

本文主要是介绍【附代码】Python Excel合并单元格(OpenPyXL) Pandas.DataFrame groupby样式保存xlsx,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 相关文献
    • Excel合并单元格并居中
    • Pandas.DataFrame groupby样式保存Excel

作者:小猪快跑

基础数学&计算数学,从事优化领域5年+,主要研究方向:MIP求解器、整数规划、随机规划、智能优化算法

如有错误,欢迎指正。如有更好的算法,也欢迎交流!!!——@小猪快跑

相关文献

  • openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.1.2 documentation

Excel合并单元格并居中

如果我们想合并单元格A1:B1并居中:

from openpyxl.styles import Alignment
from openpyxl import load_workbook# 读取Excel文件
wb = load_workbook("excel.xlsx")
# 选择表名为 Sheet1 的表
ws = wb["Sheet1"]
# 合并单元格
ws.merge_cells('A1:B1')
# 单元格居中
ws['A1'].alignment = Alignment(horizontal="center", vertical="center")
# 保存Excel
wb.save("excel.xlsx")

Pandas.DataFrame groupby样式保存Excel

假设原始表格是这样的

abc
A10
A11
A22
B23
B24
C35
X36
X37

然后想类似 groupby([‘a’,‘b’])样式保存成Excel

abc
A10
1
22
B23
4
C35
X36
7
import numpy as np
from openpyxl import Workbook
from openpyxl.styles import Alignment
from openpyxl.utils.dataframe import dataframe_to_rows
import pandas as pddef merge_cells(df, key, output_path=None):"""key 列去重并合并单元格并居中Args:df: DataFrame输入表key: (多个)列名output_path: 保存路径Returns: Workbook 工作簿"""wb = Workbook()  # 创建工作簿ws = wb.active  # 获取第一个工作表# 把 key 列 调整到最前面,并进行排序col = key if isinstance(key, list) else [key]columns = [*col, *(set(df.columns) - set(col))]_df = df[columns]_df.sort_values(key, inplace=True)# 将每行数据写入工作表中for row in dataframe_to_rows(_df, index=False, header=True):ws.append(row)align = Alignment(horizontal="center", vertical="center")  # 居中样式idx = {-1, _df.shape[0] - 1}for i, _ in enumerate(col):c = _df[_].valuesidx.update(np.where(c[1:] != c[:-1])[0])sorted_idx = sorted(idx)for start, end in zip(sorted_idx[:-1], sorted_idx[1:]):# OpenPyXL 序号从1开始,所以行序号需要+2ws.merge_cells(start_row=start + 3, end_row=end + 2, start_column=i + 1, end_column=i + 1)# 仅需对合并单元格后的一个 cell 居中即可ws.cell(start + 3, i + 1).alignment = alignif output_path:# 保存writer中的数据至excelwb.save(output_path)return wbif __name__ == '__main__':df = pd.DataFrame({"a": ["A", "A", "A", "B", "B", "C", "X", "X"],"b": [1, 1, 2, 2, 2, 3, 3, 3],"c": range(8),})df.to_csv('input.csv', index=False)wb = merge_cells(df, ['a', 'b'], 'out.xlsx')

这篇关于【附代码】Python Excel合并单元格(OpenPyXL) Pandas.DataFrame groupby样式保存xlsx的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/726129

相关文章

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5

Python Pandas高效处理Excel数据完整指南

《PythonPandas高效处理Excel数据完整指南》在数据驱动的时代,Excel仍是大量企业存储核心数据的工具,Python的Pandas库凭借其向量化计算、内存优化和丰富的数据处理接口,成为... 目录一、环境搭建与数据读取1.1 基础环境配置1.2 数据高效载入技巧二、数据清洗核心战术2.1 缺失

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

Java List排序实例代码详解

《JavaList排序实例代码详解》:本文主要介绍JavaList排序的相关资料,Java排序方法包括自然排序、自定义排序、Lambda简化及多条件排序,实现灵活且代码简洁,文中通过代码介绍的... 目录一、自然排序二、自定义排序规则三、使用 Lambda 表达式简化 Comparator四、多条件排序五、

Java 压缩包解压实现代码

《Java压缩包解压实现代码》Java标准库(JavaSE)提供了对ZIP格式的原生支持,通过java.util.zip包中的类来实现压缩和解压功能,本文将重点介绍如何使用Java来解压ZIP或RA... 目录一、解压压缩包1.zip解压代码实现:2.rar解压代码实现:3.调用解压方法:二、注意事项三、总