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个小时,直接崩溃。

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

相关推荐
凌波粒10 小时前
D2L学习笔记:安装、张量与数据处理
笔记·python·学习·pandas
开开心心就好18 小时前
桌面图标乱了怎么办,一键恢复固定位置工具
运维·服务器·windows·pdf·excel·3dsmax·houdini
偷心伊普西隆20 小时前
EXCEL 自动化链接更新工具设计方案
自动化·excel
ai_coder_ai20 小时前
如何在自动化脚本中使用excel文件?
excel·autojs·自动化脚本·冰狐智能辅助·easyclick
前端程序猿i20 小时前
纯JS 导出 Excel 工具
开发语言·javascript·excel
✎ ﹏梦醒͜ღ҉繁华落℘20 小时前
excel操作 ---删除空行
excel
沪漂阿龙2 天前
深入浅出 Pandas apply():从入门到向量化思维
人工智能·python·pandas
梦幻通灵2 天前
Excel工作表的复制实战【实用指南】
excel
沪漂阿龙2 天前
深度解析Pandas数据组合:从concat到merge,打通你的数据处理任督二脉
python·数据分析·pandas