问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Pandas处理Excel文件:读取、写入与追加数据的完整指南

创作时间:
作者:
@小白创作中心

Pandas处理Excel文件:读取、写入与追加数据的完整指南

引用
1
来源
1.
https://docs.pingcode.com/baike/4241087

Pandas是Python中处理数据的重要工具,特别是在处理Excel文件时,其功能强大且灵活。本文将详细介绍如何使用Pandas读取、写入以及向现有Excel文件添加新数据,同时还会介绍如何结合其他库实现更复杂的功能。

Pandas添加Excel的几种方法包括:直接读取Excel文件、将DataFrame写入Excel文件、向现有Excel文件添加新数据。其中最常见的是通过
pandas
库的
read_excel
函数读取Excel文件并创建DataFrame,以及使用
to_excel
函数将DataFrame写入Excel文件。详细描述:通过
read_excel
函数,你可以读取Excel文件中的指定表格,转换为DataFrame进行处理。此外,
to_excel
函数可以方便地将DataFrame保存为Excel文件,并可以指定表格名称、格式等选项。

一、读取Excel文件

1、使用

pandas.read_excel
函数

Pandas库提供了非常方便的函数
read_excel
,它可以直接读取Excel文件并将其转换为DataFrame。这个函数可以读取Excel文件中的特定表格(sheet),支持多种参数来指定读取的方式。

import pandas as pd

## **读取Excel文件中的第一个表格**  
df = pd.read_excel('your_excel_file.xlsx')  

2、读取特定表格

有时候一个Excel文件中可能包含多个表格,你可以通过指定表格名称或索引来读取特定的表格。

# 通过表格名称读取  
df = pd.read_excel('your_excel_file.xlsx', sheet_name='Sheet1')  

## **通过表格索引读取**  
df = pd.read_excel('your_excel_file.xlsx', sheet_name=0)  

3、多表格读取

如果需要一次读取多个表格,可以将
sheet_name
参数设置为一个列表。返回的结果将是一个字典,其中键是表格名称,值是相应的DataFrame。

# 读取多个表格  
sheets = pd.read_excel('your_excel_file.xlsx', sheet_name=['Sheet1', 'Sheet2'])  

二、将DataFrame写入Excel文件

1、使用

pandas.DataFrame.to_excel
函数

一旦你对DataFrame进行了所需的处理,可以使用
to_excel
函数将其保存到Excel文件中。

# 创建一个DataFrame  
df = pd.DataFrame({  
    'Name': ['John', 'Alice', 'Bob'],  
    'Age': [23, 25, 22]  
})  

## **将DataFrame写入Excel文件**  
df.to_excel('output.xlsx', index=False)  

2、写入特定表格

可以通过
sheet_name
参数指定要写入的表格名称。

df.to_excel('output.xlsx', sheet_name='NewSheet', index=False)  

3、添加格式和选项

你可以通过各种参数和选项来格式化输出,例如指定开始行、列,添加标题和格式等。

df.to_excel('output.xlsx', sheet_name='NewSheet', startrow=2, startcol=1, header=True, index=False)  

三、向现有Excel文件添加新数据

1、使用

openpyxl

pandas

Pandas默认使用
openpyxl
作为Excel文件的写入引擎,你可以利用它来向现有文件添加新数据。

from openpyxl import load_workbook  

## **加载现有Excel文件**  
book = load_workbook('existing_file.xlsx')  

## **使用Pandas的ExcelWriter**  
with pd.ExcelWriter('existing_file.xlsx', engine='openpyxl') as writer:  
    writer.book = book  
    writer.sheets = {ws.title: ws for ws in book.worksheets}  

    # 将新的DataFrame写入新的表格  
    new_df = pd.DataFrame({  
        'Product': ['A', 'B', 'C'],  
        'Sales': [100, 200, 150]  
    })  

    new_df.to_excel(writer, sheet_name='NewSheet', index=False)  

    # 保存文件  
    writer.save()  

2、追加数据到现有表格

如果需要在现有表格中追加数据,可以先读取表格,进行合并处理后,再写回文件。

# 读取现有表格  
existing_df = pd.read_excel('existing_file.xlsx', sheet_name='Sheet1')  

## **新数据**  
new_data = pd.DataFrame({  
    'Name': ['Eve'],  
    'Age': [29]  
})  

## **合并数据**  
combined_df = pd.concat([existing_df, new_data])  

## **写回文件**  
with pd.ExcelWriter('existing_file.xlsx', engine='openpyxl') as writer:  
    writer.book = book  
    writer.sheets = {ws.title: ws for ws in book.worksheets}  

    combined_df.to_excel(writer, sheet_name='Sheet1', index=False)  

    writer.save()  

四、使用其他库增强功能

1、

XlsxWriter

Pandas还支持使用
XlsxWriter
作为Excel文件的写入引擎,这可以提供更多的格式化选项。

# 使用XlsxWriter引擎  
with pd.ExcelWriter('output.xlsx', engine='xlsxwriter') as writer:  
    df.to_excel(writer, sheet_name='Sheet1', index=False)  

    # 获取XlsxWriter workbook对象和worksheet对象  
    workbook  = writer.book  
    worksheet = writer.sheets['Sheet1']  

    # 添加一些格式  
    format1 = workbook.add_format({'num_format': '0.00'})  
    worksheet.set_column('B:B', None, format1)  

    # 保存文件  
    writer.save()  

2、

pyexcel

pyexcel
是一个轻量级的Excel处理库,它可以与Pandas结合使用,提供更加灵活的读写操作。

import pyexcel as p  

## **读取Excel文件**  
sheet = p.get_sheet(file_name='your_excel_file.xlsx')  

## **转换为Pandas DataFrame**  
df = pd.DataFrame(sheet.array)  

## **进行处理后写回文件**  
sheet = p.Sheet(df.values.tolist())  
sheet.save_as('output.xlsx')  

五、总结

通过上述方法,我们可以看到Pandas在处理Excel文件时提供了强大的功能和灵活的选项。无论是读取、写入还是追加数据,Pandas都能高效地完成任务。此外,通过结合其他库如
openpyxl

XlsxWriter

pyexcel
,你可以实现更加复杂和定制化的Excel文件操作。希望这篇文章能帮助你更好地使用Pandas处理Excel文件。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号