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

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

相关推荐
娃乐呵5 小时前
免费的大批量Excel文档大模型处理数据工具
语言模型·大模型·excel·数据处理
Eiceblue8 小时前
使用 Python 写入多类型数据至 Excel 文件
开发语言·python·excel
Lucky高8 小时前
Pandas库实践3_索引
开发语言·python·pandas
蹦蹦跳跳垂耳兔9 小时前
Excel创建组妙用隐藏
excel
开开心心_Every11 小时前
无广告干扰:简单好用文字LOGO设计工具
xml·java·网络·数据库·华为od·华为云·excel
墨上烟雨11 小时前
Pandas读写CSV、Excel、JSON文件
pandas
CodeCraft Studio2 天前
Excel处理控件Aspose.Cells教程:使用C#在Excel中创建气泡图
信息可视化·c#·excel·aspose·excel api库·excel气泡图·excel组件库
CodeCraft Studio2 天前
国产化Excel开发组件Spire.XLS教程:使用Python批量删除Excel分页符
开发语言·python·excel·python开发·spire.xls·excel api库·excel开发组件
缺点内向2 天前
C#:轻松实现Excel到TXT的转换
后端·c#·.net·excel
ghgxm5202 天前
EXCEL使用VBA代码实现按条件查询数据库--简单实用
开发语言·数据仓库·笔记·excel·数据库开发