Python利用pandas处理Excel数据的应用详解

  • Post category:Python

下面是“Python利用pandas处理Excel数据的应用详解”的完整攻略。

1. 引言

在处理数据时,Excel表格是一个非常常用的工具。但是,当数据量比较大的时候,Excel的效率就会变低。而Python的pandas库就是用来处理数据的神器,它能够读写各种文件格式,包括Excel。本文将介绍使用Python和pandas处理Excel数据的方法。

2. 安装pandas库

在开始之前,需要安装pandas库。在命令行输入以下命令即可完成安装。

pip install pandas

3. 读取Excel文件

使用pandas读取Excel文件非常简单,只需要使用read_excel()函数即可。
示例代码:

import pandas as pd

# 读取excel文件
df = pd.read_excel("example.xlsx")
# 打印读取的数据
print(df)

上述代码中,我们使用了pandas的read_excel()函数读取了名为example.xlsx的Excel文件,并将其赋值给变量df。随后,我们使用print()函数打印了读取得到的数据。

4. 写入Excel文件

使用pandas写入Excel文件同样非常简单,只需要调用DataFrame.to_excel()函数即可。
示例代码:

import pandas as pd

# 构造数据
data = {
    "Name": ["Alice", "Bob", "Charlie"],
    "Age": [20, 25, 30],
    "Gender": ["Female", "Male", "Male"]
}
# 转换为DataFrame
df = pd.DataFrame(data)
# 写入Excel文件
df.to_excel("example.xlsx", index=False)

上述代码中,我们首先构造了一个Python字典,它包含了三个key:Name、Age和Gender,分别对应值为Alice、Bob、Charlie、20、25、30和Female、Male、Male的三组数据。接着,我们使用pandas的DataFrame()函数将该字典转换为DataFrame格式。随后,我们使用to_excel()函数将该DataFrame对象写入名为example.xlsx的Excel文件中,并设置index=False来禁用行号索引的写入。

5. 高级应用

对于大型的Excel文件,我们通常要进行逐页读写,这时可以使用pandas的ExcelFile对象。ExcelFile对象可以通过pandas.read_excel()函数创建,在需要读写Excel文件时,直接使用ExcelFile对象调用parse()方法即可。示例代码:

import pandas as pd

# 创建ExcelFile对象
excel_file = pd.ExcelFile("example.xlsx")
# 读取指定页数
df1 = excel_file.parse("Sheet1")
df2 = excel_file.parse("Sheet2")
# 打印读取的数据
print(df1)
print(df2)

上述代码中,我们首先使用pandas的ExcelFile()函数创建了一个ExcelFile对象,并指定需要读取的Excel文件名为example.xlsx。接着,我们调用ExcelFile对象的parse()方法,分别读取了example.xlsx文件中名为Sheet1和Sheet2的两页数据,并将读取的数据赋值给df1和df2两个变量。最后,我们使用print()函数打印了读取得到的数据。

另一个高级应用是设置Excel格式,比如设置字体颜色、背景色、边框等。需要用到Python的开源库openpyxl,示例代码如下:

import pandas as pd
from openpyxl.styles import Font, Color, colors, PatternFill, Border, Side

# 读取excel文件
df = pd.read_excel("example.xlsx")
# 创建ExcelWriter对象
writer = pd.ExcelWriter("example.xlsx", engine="openpyxl")
# 将DataFrame写入指定位置
df.to_excel(writer, sheet_name="Sheet1", index=False)

# 设置字体
font = Font(color=colors.RED, bold=True)
# 设置背景色
fill = PatternFill(patternType="solid", fgColor="FFFF00")
# 设置边框样式
border = Border(left=Side(border_style="thin", color="FF0000"), 
                right=Side(border_style="thin", color="FF0000"), 
                top=Side(border_style="thin", color="FF0000"), 
                bottom=Side(border_style="thin", color="FF0000"))

# 获取Sheet1的Workbook对象
workbook = writer.book
# 获取Sheet1的Worksheet对象
worksheet = workbook["Sheet1"]
# 对A1单元格进行设置
worksheet["A1"].font = font
worksheet["A1"].fill = fill
worksheet["A1"].border = border

# 保存文件
writer.save()

上述代码中,我们首先使用pandas的read_excel()函数读取了名为example.xlsx的Excel文件,并将其赋值给变量df。接着,我们创建了一个ExcelWriter对象,并将其指定为openpyxl引擎。随后,我们调用to_excel()函数将DataFrame对象写入名为Sheet1的Excel表单中。接下来,我们使用openpyxl库中的Font、Color、PatternFill、Border、Side等对象,定义了要设置的字体、颜色、背景色、边框等样式。最后,我们使用Worksheet对象的操作,对A1单元格进行了样式设置,并保存文件。

6. 结语

本文介绍了使用Python和pandas处理Excel数据的方法,包括读取Excel数据、写入Excel数据、以及高级应用,希望对读者有所帮助。