Python处理Excel数据:Pandas与Openpyxl应用实践
在日常的工作或者项目中,经常会遇到需要处理Excel数据的需求。Python中有许多处理Excel数据的库,其中Pandas和Openpyxl是两个比较常用的库。本文将介绍如何使用Pandas和Openpyxl来读写和处理Excel数据。
1. 安装Pandas和Openpyxl
在开始使用Pandas和Openpyxl之前,需要先安装它们。可以通过以下命令来安装:
```
pip install pandas
pip install openpyxl
```
2. 读取Excel数据
使用Pandas读取Excel数据非常简单,只需要用read_excel()函数即可。以下是一个例子:
```
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx')
# 打印前5行
print(df.head())
```
在上述例子中,我们通过read_excel()函数读取了名为"data.xlsx"的Excel文件,并将其保存为DataFrame格式。通过head()函数打印了前5行数据。
使用Openpyxl读取Excel数据也非常简单。以下是一个例子:
```
from openpyxl import load_workbook
# 读取Excel文件
wb = load_workbook('data.xlsx')
# 选择工作表
ws = wb.active
# 遍历行和列
for row in ws.iter_rows(values_only=True):
for cell in row:
print(cell)
```
在上述例子中,我们通过load_workbook()函数读取了名为"data.xlsx"的Excel文件,并选择了活动工作表。通过使用iter_rows()函数来遍历Excel表格中的每一行和每一列。
3. 写入Excel数据
使用Pandas写入Excel数据同样非常简单,只需要将DataFrame数据保存到Excel文件中即可。以下是一个例子:
```
import pandas as pd
# 创建DataFrame数据
data = {'Name': ['John', 'Jane', 'Mike', 'Lisa'],
'Age': [25, 30, 35, 40],
'Gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
# 将DataFrame保存为Excel文件
df.to_excel('output.xlsx', index=False)
```
在上述例子中,我们创建了一个DataFrame数据,并使用to_excel()函数将其保存到名为"output.xlsx"的Excel文件中。通过设置index=False来避免生成Excel文件中的行索引。
使用Openpyxl写入Excel数据同样也非常简单。以下是一个例子:
```
from openpyxl import Workbook
# 创建工作簿和工作表
wb = Workbook()
ws = wb.active
# 写入数据
ws['A1'] = 'Name'
ws['B1'] = 'Age'
ws['C1'] = 'Gender'
ws['A2'] = 'John'
ws['B2'] = 25
ws['C2'] = 'M'
ws['A3'] = 'Jane'
ws['B3'] = 30
ws['C3'] = 'F'
ws['A4'] = 'Mike'
ws['B4'] = 35
ws['C4'] = 'M'
ws['A5'] = 'Lisa'
ws['B5'] = 40
ws['C5'] = 'F'
# 保存工作簿
wb.save('output.xlsx')
```
在上述例子中,我们首先创建了一个工作簿和工作表,然后通过添加数据到单元格来写入Excel数据。最后通过使用save()函数保存工作簿到名为"output.xlsx"的Excel文件中。
4. 处理Excel数据
使用Pandas和Openpyxl可以进行许多Excel数据处理。以下是一些常用的处理方法:
使用Pandas计算数据的均值、中位数、标准差和方差:
```
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx')
# 计算均值、中位数、标准差和方差
print('Mean:', df['Age'].mean())
print('Median:', df['Age'].median())
print('Standard deviation:', df['Age'].std())
print('Variance:', df['Age'].var())
```
使用Openpyxl进行数据筛选:
```
from openpyxl import load_workbook
# 读取Excel文件
wb = load_workbook('data.xlsx')
ws = wb.active
# 筛选出年龄大于30岁的人员
for row in ws.iter_rows(min_row=2, values_only=True):
if row[1] > 30:
print(row[0], row[1], row[2])
```
在上述例子中,我们使用iter_rows()函数遍历Excel表格中的每一行,并筛选出年龄大于30岁的人员数据。
5. 总结
本文介绍了如何使用Pandas和Openpyxl来读写和处理Excel数据。可以根据具体需求选择使用Pandas或Openpyxl进行数据处理。同时,还介绍了一些常用的Excel数据处理方法,可以根据具体情况进行使用。