Python如何高效导入导出与处理Excel数据
本文详细介绍如何使用Python结合Pandas与Openpyxl库,完成Excel文件的读取、写入、数据清洗与格式化输出。涵盖环境配置、核心API参数说明、多表操作及自动化脚本编写,并提供实际运行代码与常见问题排查指南。
准备工作与核心依赖
第1步:安装Python依赖库
Python处理Excel主要依赖Pandas(数据分析与结构化管理)和Openpyxl(Excel文件格式读写支持)。在终端执行以下命令安装:
pip install pandas openpyxl
为避免依赖冲突,建议使用虚拟环境。若已使用Anaconda,可通过conda创建:
conda create --name excel_env python=3.9
conda activate excel_env
安装完成后,在代码中引入对应模块:
import pandas as pd
from openpyxl import load_workbook
数据入境:读取Excel并加载为DataFrame
第2步:指定工作表读取基础数据
使用pd.read_excel()可将Excel文件转换为Pandas的DataFrame对象。默认读取第一个工作表,也可通过sheets_name参数精确指定。
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
若需一次性获取所有工作表内容,省略sheets_name参数将返回字典,键为表名,值为对应DataFrame:
all_sheets = pd.read_excel('data.xlsx', sheet_name=None)
第3步:处理缺失值与非结构化数据
实际表格常包含表示空值的特殊字符。可通过na_values参数自定义识别标准:
df = pd.read_excel('data.xlsx', na_values=['NA', 'N/A', '-'])
对于包含公式或合并单元格的复杂文件,建议先用Openpyxl进行底层结构调整,或结合正则表达式清洗文本列。读取后务必检查数据结构:
print(df.head())
print(df.info())
数据出境:写入Excel与格式优化
第4步:导出数据到新工作簿
处理完成后,调用DataFrame的to_excel()方法即可保存。默认会保留行索引,通常需关闭索引输出:
df.to_excel('output.xlsx', index=False)
第5步:多工作表输出与样式定制
当需要将多个数据集分别写入不同Sheet时,应使用pd.ExcelWriter上下文管理器:
with pd.ExcelWriter('output.xlsx') as writer:
df1.to_excel(writer, sheet_name='原始数据', index=False)
df2.to_excel(writer, sheet_name='统计汇总', index=False)
如需调整单元格外观(如加粗标题、居中),可联动Openpyxl样式模块:
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment
wb = Workbook()
ws = wb.active
ws.append(['产品名称', '销售数量', '销售额'])
for cell in ws[1]:
cell.font = Font(bold=True)
cell.alignment = Alignment(horizontal='center')
wb.save('styled_output.xlsx')
数据清洗与自动化处理
第6步:基础清洗与类型转换
删除重复记录是常见需求,使用drop_duplicates()可直接过滤:
df_cleaned = df.drop_duplicates()
数值型字符串需显式转换类型以参与计算:
df['销售额'] = df['销售额'].str.replace(',', '').astype(float)
第7步:封装自动化脚本
将读取、合并、清洗、输出步骤封装为函数,便于定时任务调度(如Windows计划任务或Linux cron):
import pandas as pd
from datetime import datetime
def process_excel():
# 读取源文件
df1 = pd.read_excel('source1.xlsx')
df2 = pd.read_excel('source2.xlsx')
# 合并与去重
combined_df = pd.concat([df1, df2]).drop_duplicates()
# 动态命名输出文件
timestamp = datetime.now().strftime('%Y%m%d')
output_file = f'report_{timestamp}.xlsx'
with pd.ExcelWriter(output_file) as writer:
combined_df.to_excel(writer, sheet_name='Data', index=False)
if __name__ == '__main__':
process_excel()
常见问题排错
- FileNotFoundError / ModuleNotFoundError:确认文件路径是否正确,或重新执行
pip install pandas openpyxl。 - ValueError: Sheet xxx not found:检查工作表名称大小写是否完全匹配,或通过
sheet_name=None查看所有可用表名。 - 类型转换报错:列内混杂非数字文本会导致
astype(float)失败。需先使用pd.to_numeric(col, errors='coerce')强制转换异常值为NaN。
总结
掌握Pandas读写接口与Openpyxl样式控制,配合标准化清洗逻辑,即可构建稳定高效的表格数据处理流。以上就是Python高效导入导出与处理Excel数据的详细内容,更多关于Python办公自动化与数据分析的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













