本文将介绍使用 Python 处理 Excel 文件的多种方法,涵盖从基本的读写操作到高级的数据分析与可视化。通过这些示例,你可以学习如何高效地管理和分析 Excel 数据。
-
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

1.安装必要的库
- 在开始之前,确保安装了
pandas
和 openpyxl
这两个库。这两个库是处理 Excel 文件的基础。
pip install pandas openpyxl
2.读取 Excel 文件
import pandas as pd
df = pd.read_excel('example.xlsx', engine='openpyxl')
print(df.head())
A B C
0 1 100 1000
1 2 200 2000
2 3 300 3000
3 4 400 4000
4 5 500 5000
3.写入 Excel 文件
- 接下来,我们将创建一个新的 DataFrame 并将其写入新的 Excel 文件。
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [100, 200, 300, 400, 500],
'C': [1000, 2000, 3000, 4000, 5000]}
df = pd.DataFrame(data)
df.to_excel('output.xlsx', index=False)
4.选择特定列
import pandas as pd
df = pd.read_excel('example.xlsx', usecols=['A', 'C'])
print(df.head())
A C
0 1 1000
1 2 2000
2 3 3000
3 4 4000
4 5 5000
5.过滤数据
import pandas as pd
df = pd.read_excel('example.xlsx')
filtered_df = df[df['A'] > 3]
print(filtered_df)
A B C
3 4 400 4000
4 5 500 5000
6.数据排序
import pandas as pd
df = pd.read_excel('example.xlsx')
sorted_df = df.sort_values(by='A', ascending=False)
print(sorted_df)
A B C
4 5 500 5000
3 4 400 4000
2 3 300 3000
1 2 200 2000
0 1 100 1000
7.数据分组
import pandas as pd
df = pd.read_excel('example.xlsx')
grouped_df = df.groupby('B').mean()
print(grouped_df)
A C
B
100 1.000000 1000.0
200 2.000000 2000.0
300 3.000000 3000.0
400 4.000000 4000.0
500 5.000000 5000.0
8.添加新列
import pandas as pd
df = pd.read_excel('example.xlsx')
df['D'] = df['A'] * df['B']
print(df)
A B C D
0 1 100 1000 100
1 2 200 2000 400
2 3 300 3000 900
3 4 400 4000 1600
4 5 500 5000 2500
9.更新单元格
import pandas as pd
df = pd.read_excel('example.xlsx')
df.at[1, 'A'] = 10
print(df)
A B C
0 1 100 1000
1 10 200 2000
2 3 300 3000
3 4 400 4000
4 5 500 5000
10.删除列
import pandas as pd
df = pd.read_excel('example.xlsx')
del df['C']
print(df)
A B
0 1 100
1 2 200
2 3 300
3 4 400
4 5 500
11.合并多个 Excel 文件
- 合并多个 Excel 文件可以方便地将数据集中到一起。
import pandas as pd
df1 = pd.read_excel('example1.xlsx')
df2 = pd.read_excel('example2.xlsx')
merged_df = pd.concat([df1, df2], ignore_index=True)
print(merged_df)
A B C
0 1 100 1000
1 2 200 2000
2 3 300 3000
3 4 400 4000
4 5 500 5000
12.数据透视表
- 数据透视表是一种强大的工具,可以快速汇总和分析数据。
import pandas as pd
df = pd.read_excel('example.xlsx')
pivot_table = pd.pivot_table(df, values='C', index=['A'], columns=['B'], aggfunc=sum)
print(pivot_table)
B 100 200 300 400 500
A
1 1000 NaN NaN NaN NaN
2 NaN 2000 NaN NaN NaN
3 NaN NaN 3000 NaN NaN
4 NaN NaN NaN 4000 NaN
5 NaN NaN NaN NaN 5000
13.数据合并
import pandas as pd
df1 = pd.read_excel('example1.xlsx')
df2 = pd.read_excel('example2.xlsx')
merged_df = pd.merge(df1, df2, on='A', how='inner')
print(merged_df)
A B_x C_x B_y C_y
0 1 100 1000 10 100
1 2 200 2000 20 200
2 3 300 3000 30 300
3 4 400 4000 40 400
4 5 500 5000 50 500
14.数据清洗
- 数据清洗是数据分析的重要步骤,可以去除无效或错误的数据。
import pandas as pd
df = pd.read_excel('example.xlsx')
df.dropna(inplace=True)
df.drop_duplicates(inplace=True)
print(df)
A B C
0 1 100 1000
1 2 200 2000
2 3 300 3000
3 4 400 4000
4 5 500 5000
15.数据类型转换
import pandas as pd
df = pd.read_excel('example.xlsx')
df['A'] = df['A'].astype(int)
df['B'] = df['B'].astype(float)
print(df.dtypes)
A int64
B float64
C float64
dtype: object
16.数据可视化
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('example.xlsx')
plt.bar(df['A'], df['B'])
plt.xlabel('A')
plt.ylabel('B')
plt.title('A vs B')
plt.show()
17.多页 Excel 文件操作
- 处理多页 Excel 文件时,可以使用openpyxl库。
from openpyxl
import load_workbook
wb = load_workbook('example.xlsx')
sheet_names = wb.sheetnames
print(sheet_names)
sheet = wb['Sheet1']
cell_value = sheet.cell(row=1, column=1).value
print(cell_value)
['Sheet1', 'Sheet2', 'Sheet3']
1
18.条件格式化
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import PatternFill
data = {
'A': [1, 2, 3, 4, 5],
'B': [100, 200, 300, 400, 500],
'C': [1000, 2000, 3000, 4000, 5000]
}
df = pd.DataFrame(data)
wb = Workbook()
ws = wb.active
df.to_excel(ws, index=False)
for row in ws.iter_rows(min_row=2, max_row=6, min_col=2, max_col=2):
for cell in row:
if cell.value > 300:
cell.fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
wb.save('condition.xlsx')
19.自定义样式
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font, Border, Side, Alignment
data = {
'A': [1, 2, 3, 4, 5],
'B': [100, 200, 300, 400, 500],
'C': [1000, 2000, 3000, 4000, 5000]
}
df = pd.DataFrame(data)
wb = Workbook()
ws = wb.active
df.to_excel(ws, index=False)
for row in ws.iter_rows(min_row=1, max_row=1, min_col=1, max_col=3):
for cell in row:
cell.font = Font(bold=True, color="FFFFFF")
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
for row in ws.iter_rows(min_row=1, max_row=6, min_col=1, max_col=3):
for cell in row:
cell.border = thin_border
for row in ws.iter_rows(min_row=1, max_row=6, min_col=1, max_col=3):
for cell in row:
cell.alignment = Alignment(horizontal='center', vertical='center')
wb.save('styled.xlsx')
20.批量处理文件
import os
import pandas as pd
files = [f for f in os.listdir('.') if f.endswith('.xlsx')]
for file in files:
df = pd.read_excel(file)
df['D'] = df['A'] * df['B']
df.to_excel(f'processed_{file}', index=False)
21.实战案例:员工绩效分析
- 假设你有一个包含员工绩效数据的 Excel 文件,需要分析每位员工的绩效。
import pandas as pd
performance_data = pd.read_excel('employee_performance.xlsx')
performance_data['Total Sales'] = performance_data['Quantity'] * performance_data['Price']
average_sales = performance_data.groupby('Employee')['Total Sales'].mean()
print(average_sales)
Employee
Alice 5000.0
Bob 6000.0
Charlie 7000.0
Dave 8000.0
Eve 9000.0
dtype: float64
总结
- 本文介绍了使用 Python 处理 Excel 文件的各种方法,包括读取、写入、筛选、排序、分组、添加新列、更新单元格、删除列、合并多个文件、数据透视表、数据合并、数据清洗、数据类型转换、数据可视化、多页文件操作、条件格式化、自定义样式以及批量处理等。
- 通过这些示例,你可以掌握如何高效地管理和分析 Excel 数据。

总结
- 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!
文末福利
- 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!
- ① Python所有方向的学习路线图,清楚各个方向要学什么东西
- ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
- ③ 100多个Python实战案例,学习不再是只会理论
- ④ 华为出品独家Python漫画教程,手机也能学习
可以扫描下方二维码领取【保证100%免费】 