Python _Excel操作(删除表中特定行)

本文介绍了一种使用Python处理Excel数据的方法,通过将数据读取为字典,筛选并删除包含特定字符串的数据行,最后将处理后的数据写入新的Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为做项目的时候经常需要操作Excel中的数据,在网上找代码挺麻烦的,记录一下。

需求是删除表中符合要求的数据,具体来说就是名字里包含特定字符串的都要删掉。比如名字中包括2D_54019的行都删除。
在这里插入图片描述
在博客上看到一篇,思路是先把excel读下来,保存为字典。在字典里把不要的都删去,然后再写回原表。写回原表太麻烦了,图省事就重新生成一个excel吧。

首先是把表保存在字典里。

def read_excel(bookname,  sheetname):
    # 打开Excel文件
        wb = xlrd.open_workbook(bookname)
        sheet = wb.sheet_by_name(sheetname)
        dic = {}

    # 把第一列作为字典的键,一行数据保存为列表,作为字典的值。列表中也包含第一列的值哦
        for i in range(sheet.nrows-1):
            lis = []
            for j in range(sheet.ncols):
                lis.append(sheet.cell(i+1, j).value)
            dic[sheet.cell(i+1, 0).value] = lis
        return dic

然后就是在字典里筛选数据。我是把名字里包括特定字符串的数据删掉。

def find_and_delete(dic1, dic2, string):

    yaoshanchude = string
    buyaode = []

    for i in dic1.keys():

        my_str = str(i)
        r1 = yaoshanchude in my_str

        if r1:
            
            buyaode.append(i)

    for k in buyaode:

        dic2.pop(k)

    return dic2

因为字典在遍历的过程中不允许修改,无法执行pop操作,所有用了两个字典,这两个字典是相同的(其实是蠢了,一个字典就行,第一个循环都结束了。。。)

然后就是把字典里的内容写到一张新的Excel表中。

def write_back(dic):

    # 这个参数意思,我也不太明白,反正这么写就对了,字面意思理解即可
    book = xlwt.Workbook(encoding='utf-8', style_compression=0)
    sheet = book.add_sheet('test', cell_overwrite_ok=True)

    m = 0
    
    for i in dic.keys():
        # 这个地方是从第二行开始写起了。。。
        m += 1
        n = 0
        for j in dic[i]:
            sheet.write(m, n, j)
            n += 1

    book.save('没错,就是我.xls')

呐,就是这么简单(づ ̄ 3 ̄)づ

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值