pandas处理excel问题(记录)

1. pandas读取excel合并单元格问题

复制代码
网上查到的都是 df['col'] = df['col'].ffill()
这个能解决大部分简单合并的问题,遇到复杂的就不行了

遇到上图中 有空的情况,ffill() 也会向下填充。

所以不能通过这种方式

python 复制代码
import openpyxl
# 拆分所有的合并单元格,并赋予合并之前的值。
# 由于openpyxl并没有提供拆分并填充的方法,所以使用该方法进行完成
def unmerge_and_fill_cells(worksheet):
    all_merged_cell_ranges = list(
        worksheet.merged_cells.ranges
    )
    for merged_cell_range in all_merged_cell_ranges:
        merged_cell = merged_cell_range.start_cell
        worksheet.unmerge_cells(range_string=merged_cell_range.coord)
        for row_index, col_index in merged_cell_range.cells:
            cell = worksheet.cell(row=row_index, column=col_index)
            cell.value = merged_cell.value
# 读取原始xlsx文件,拆分并填充单元格,然后生成中间临时文件。
def unmerge_cell(filename):
    wb = openpyxl.load_workbook(filename)
    for sheet_name in wb.sheetnames:
        sheet = wb[sheet_name]
        unmerge_and_fill_cells(sheet)
    filename = filename.replace(".xls", "_temp.xls")
    wb.save(filename)
    wb.close()
if __name__ == '__main__':
    unmerge_cell("test.xlsx")

转自https://www.jb51.net/python/2884618do.htm

2. 向下合并excel中每列的重复数据

思路是首先读取循环每行每列的数据,同时创建列表,保存合并单元格信息、上一行的值、上一行的行号。 判断上一行的数据和当行的数据是否一致,一致就保存到列表中,不一致就合并上面保存的单元格,并清空。

但是发现了一个问题,我处理的是33列,9w行的excel数据,用openpyxl库,去执行合并单元格的操作,会很慢,大概执行了15个小时,直接崩溃。

有没有大佬请教一下,有没有办法优化

相关推荐
开开心心就好1 天前
系统重装前必备的智能驱动备份工具
windows·计算机视觉·计算机外设·excel·模块测试·csdn开发云·威胁分析
xiaotao1311 天前
01-编程基础与数学基石:概率与统计
人工智能·python·numpy·pandas
向宇it1 天前
php高性能的导出excel读写扩展——xlswriter,比传统的Spreadsheet要快很多
php·excel·xlswriter
yanweijie03172 天前
对比VLOOKUP、XLOOKUP、INDEX+MATCH三大查找函数
excel
Codiggerworld2 天前
Vim的语法:删除、复制、粘贴,像说话一样自然
编辑器·vim·excel
Pentane.2 天前
【数据分析 | 农业项目】蔬菜类商品的自动定价与补货决策 | Tableau & Excel
数据挖掘·数据分析·excel·tableau
happy_baymax2 天前
Simulink 端口自动生成工具 (v2.1)(EXCEL+m语言)
服务器·matlab·excel·simulink
SunnyDays10112 天前
如何使用 C# 高效实现 Excel 与 CSV 的互相转换
c#·excel·csv
热爱生活的五柒2 天前
excel的使用教程
excel
城数派2 天前
2025年我国省市县三级的平均坡度数据(Excel\Shp格式)
arcgis·信息可视化·数据分析·excel