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数据处理方法,可以根据具体情况进行使用。