使用Python操作Excel,删重复数据及keep参数用法并保存的例子

文章介绍了如何使用Python的pandas库读取Excel文件,通过drop_duplicates函数删除重复数据,并提供两种保留策略。最后,展示了如何将处理后的数据保存回新的Excel文件。

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

01Ex按列标题删重复的数据

解析:我们使用了pandas库读取Excel文件,并使用drop_duplicates()函数删除重复数据。其中,subset参数指定了删除重复数据的列(列名),keep参数指定了保留哪个重复记录(默认为第一个记录)。inplace=True参数表示在原始数据上进行操作。

最后,我们使用to_excel()函数将处理后的数据,保存到一个新的Excel文件中,其中index=False参数表示不保存DataFrame的索引列。

需要注意的是,要根据实际需求修改column_name(代码,地区)为需要删除重复数据的列名。此外,如果Excel文件中包含多个Sheet,需要使用sheet_name参数指定操作哪个Sheet。

import pandas as pd
# 1.读取Excel文件,参数是路径
df = pd.read_excel('表格测试.xlsx')

# 2.删除重复数据,last是保留最后一个记录
# subset 参数是表格的列标题名称
df.drop_duplicates(subset=['代码','地区'], keep='first', inplace=True)
#df.drop_duplicates(subset=['代码','地区'], keep='last', inplace=True)
# 将处理后的数据保存到新的Excel文件
df.to_excel('example_no_duplicates.xlsx', index=False)

# 3.读取保存好的Excel文件
data = pd.read_excel('example_no_duplicates.xlsx')
# 输出新的Excel文件中的数据
print(data)

02 Excel中删除重复数据并保存

import pandas as pd
# 读取Excel文件,并加载数据
df = pd.read_excel('表格测试.xlsx')

# 利用pandas的drop_duplicates方法删除重复数据
df.drop_duplicates(inplace=True)

# 保存修改后的数据到新的Excel文件
df.to_excel('example_distinct.xlsx', index=False)

03 循环边遍历列表

import openpyxl

# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')

# 选择Excel文件中的Sheet
sheet = wb['Sheet1']

# 循环遍历所有单元格,并加1处理
for i in range(1, sheet.max_row+1):
    for j in range(1, sheet.max_column+1):
        cell = sheet.cell(row=i, column=j)
        if isinstance(cell.value, (int, float)):
            cell.value = cell.value + 1

# 保存修改后的Excel文件
wb.save('example_new.xlsx')

当下这个大数据时代不掌握一门编程语言怎么跟的上时代呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
若有侵权,请联系删除
<think>好的,我现在需要回答用户关于如何在Python中处理XLSM格式的Excel文件的问题。首先,用户提到的引用内容都是关于openpyxl库的,所以这个库应该是关键。我记得openpyxl支持XLSM文件,因为它处理Excel 2010及以后的格式,包括带有宏的文件。 用户可能想知道如何读取和写入XLSM文件。根据引用[3],openpyxl可以读取和写入XLSM,但需要处理宏的话可能需要额外注意。比如,保存文件时,如果要保留宏,必须指定为XLSM格式,否则宏可能会丢失。此外,引用[5]中提到了删除sheet的操作,这可能是一个例子,但用户需要的是处理XLSM的具体步骤。 接下来,我需要确认openpyxl的安装和使用方法。用户可能需要先安装库,然后使用load_workbook函数加载XLSM文件。读取数据的话,可以像处理XLSX一样操作,比如访问单元格数据。写入时,保存为XLSM需要指定文件名为.xlsm,且可能需要设置keep_vba参数为True来保留宏。 另外,用户可能关心如何处理带有宏的文件。根据引用[3]和[4],openpyxl可以处理这些文件,但需要注意是否启用宏。如果用户需要修改保留宏,保存时必须使用正确的格式和参数。如果不需要宏,可以另存为XLSX,但引用[2]提到的问题可能需要转换格式,这时候可能需要使用其他库如pywin32,但用户的问题集中在Python操作,所以主要用openpyxl。 可能还需要提到其他库,比如xlrd和xlwt,但根据引用[4],xlrd不支持XLSM,而openpyxl是更好的选择。因此,重点应放在openpyxl的使用上,包括读取、修改和保存XLSM文件的步骤,以及处理宏的注意事项。 最后,生成相关问题时,需要考虑用户可能遇到的后续问题,比如处理宏、性能优化、与其他格式的转换等。要确保问题覆盖常见的使用场景和潜在的问题点。</think>### 如何在Python操作XLSM格式的Excel文件? #### 1. 使用`openpyxl`库处理XLSM文件 `openpyxl`是专门用于处理Excel 2010及以上版本文件(如`.xlsx`、`.xlsm`)的Python库,支持读取、写入和修改文件内容,包括保留宏功能[^3][^4]。 **操作步骤:** 1. **安装库**: ```bash pip install openpyxl ``` 2. **读取XLSM文件**: ```python from openpyxl import load_workbook # 加载文件(需确保文件路径正确) wb = load_workbook('example.xlsm', keep_vba=True) # keep_vba=True保留宏 sheet = wb['Sheet1'] # 选择工作表 # 读取单元格数据 print(sheet['A1'].value) ``` 3. **写入保存XLSM文件**: ```python # 修改数据 sheet['B2'] = "新数据" # 保存为XLSM格式(保留宏) wb.save('modified.xlsm') ``` #### 2. 处理宏的注意事项 - **保留宏**:加载文件时需设置`keep_vba=True`,保存时需使用`.xlsm`扩展名[^3]。 - **移除宏**:若需将XLSM转为XLSX,直接另存为`.xlsx`格式即可[^2]: ```python wb = load_workbook('example.xlsm', keep_vba=False) wb.save('converted.xlsx') ``` #### 3. 其他常见操作 - **删除工作表**: ```python del wb['Sheet2'] wb.save('modified.xlsm') ``` 参考引用[5]中的删除操作。 - **创建新XLSM文件**: ```python from openpyxl import Workbook wb = Workbook() wb.save('new_file.xlsm') ``` #### 4. 与其他库的对比 - **`xlrd`/`xlwt`**:仅支持旧版`.xls`格式,无法处理XLSM[^4]。 - **`pandas`**:可结合`openpyxl`读写XLSM,但需依赖后者: ```python import pandas as pd df = pd.read_excel('example.xlsm', engine='openpyxl') df.to_excel('output.xlsm', engine='openpyxl') ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值