网站首页 > 博客文章 正文
知识星球:写代码那些事
如果你有收获|欢迎|点赞|关注|转发
这里会定期更新|大厂的开发|架构|方案设计
这里也会更新|如何摸鱼|抓虾
欢迎来到写代码那些事!Excel作为数据处理的常用工具,在大量数据处理场景中扮演着重要角色。本教程将带你深入学习如何用Python完成Excel的常见操作,释放数据处理的潜力。
目录:
- 数据读取与写入:轻松打通Python与Excel
- 数据筛选与处理:快速清理和整理Excel数据
- 图表与可视化:用Python为数据赋予更多生命
- 数据分析与计算:高效地在Excel中进行统计和计算
- 自动化报表生成:用Python打造智能Excel应用
1. 数据读取与写入:轻松打通Python与Excel
在这一节中,我们将介绍如何使用Python库来读取和写入Excel文件。我们会使用pandas库来实现这些操作,让你能够轻松地将Python和Excel连接起来。
# 导入pandas库
import pandas as pd
# 读取Excel文件
data = pd.read_excel('report.xlsx')
# 写入Excel文件
data.to_excel('output.xlsx', index=False)
2. 数据筛选与处理:快速清理和整理Excel数据
在这一节,我们将学习如何使用Python来进行数据筛选和处理。通过pandas库的强大功能,你可以轻松地进行数据清理、重命名列名等操作。
# 数据筛选与处理示例
import pandas as pd
# 读取Excel文件
data = pd.read_excel('report.xlsx')
filtered_data = data[data['销售额'] > 1000]
cleaned_data = data.dropna()
# print filtered_data
print("过滤后的数据:")
print(filtered_data)
# print cleaned_data
print("清洗后的数据:")
print(cleaned_data)
如果你对,dropna这个函数有疑惑,请看下面得例子
>>> df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
... "toy": [np.nan, 'Batmobile', 'Bullwhip'],
... "born": [pd.NaT, pd.Timestamp("1940-04-25"),
... pd.NaT]})
>>> df
name toy born
0 Alfred NaN NaT
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
删除至少缺少一个元素的行
>>> df.dropna()
name toy born
1 Batman Batmobile 1940-04-25
删除至少缺少一个元素的列
>>> df.dropna(axis='columns')
name
0 Alfred
1 Batman
2 Catwoman
删除所有元素都丢失的行
>>> df.dropna(how='all')
name toy born
0 Alfred NaN NaT
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
仅保留至少具有 2 个非 NA 值的行
>>> df.dropna(thresh=2)
name toy born
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
定义在哪些列中查找缺失值
>>> df.dropna(subset=['name', 'toy'])
name toy born
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
3. 图表与可视化:用Python为数据赋予更多生命
数据可视化是数据分析的关键步骤。在这一节,我们将展示如何使用Python库来创建各种图表,为数据赋予更多生命和表现力。
import openpyxl
from openpyxl.drawing.image import Image
import pandas as pd
import matplotlib.pyplot as plt
import io
# 创建示例数据
data = pd.DataFrame({
'产品': ['A', 'B', 'C'],
'销售额': [1000, 1500, 2000]
})
# 创建新的工作簿
wb = openpyxl.Workbook()
ws = wb.active
ws.title = '报告'
# 添加数据到工作表
ws.append(['产品', '销售额'])
for _, row in data.iterrows():
ws.append(row.tolist())
# 创建柱状图
plt.bar(data['产品'], data['销售额'])
plt.xlabel('产品')
plt.ylabel('销售额')
plt.title('产品销售额')
plt.show()
4. 数据分析与计算:高效地进行统计和计算
Python在数据分析方面有很强的能力。在这一节,我们将展示如何使用pandas库来进行数据分析和计算,如统计平均值、总和等。
# 统计平均值和总和
import openpyxl
from openpyxl.drawing.image import Image
import pandas as pd
import matplotlib.pyplot as plt
import io
# 创建示例数据
data = pd.DataFrame({
'产品': ['A', 'B', 'C'],
'销售额': [1000, 1500, 2000],
'利润': [200, 300, 400] # 添加利润数据列
})
# 创建新的工作簿
wb = openpyxl.Workbook()
ws = wb.active
ws.title = '报告'
# 添加数据到工作表
ws.append(['产品', '销售额', '利润'])
for _, row in data.iterrows():
ws.append(row.tolist())
# 计算平均销售额和总利润
average_sales = data['销售额'].mean()
total_profit = data['利润'].sum()
# 创建柱状图
plt.bar(data['产品'], data['销售额'])
plt.xlabel('产品')
plt.ylabel('销售额')
plt.title('产品销售额')
print('平均销售额:', average_sales)
print('总利润:', total_profit)
5. 自动化报表生成:用Python打造智能Excel应用
在这一节中,我们将学习如何使用Python自动化生成报表。通过openpyxl库,你可以在Excel中创建新的工作表、添加图表,并实现自动化报告生成。
import openpyxl
from openpyxl.chart import LineChart, Reference
import pandas as pd
# 创建示例数据
data = pd.DataFrame({
'日期': ['2023-01-01', '2023-01-02', '2023-01-03'],
'销售额': [1000, 1500, 2000]
})
# 创建新的工作簿
wb = openpyxl.Workbook()
ws = wb.active
ws.title = '报告'
# 添加数据到工作表
ws.append(['日期', '销售额'])
for _, row in data.iterrows():
ws.append(row.tolist()) # 将Series转换为列表并添加到工作表
# 创建折线图
chart = LineChart()
chart.title = '销售趋势图'
chart.x_axis.title = '日期'
chart.y_axis.title = '销售额'
# 设置图表数据范围
data_ref = Reference(ws, min_col=2, min_row=2, max_col=2, max_row=len(data)+1)
category_ref = Reference(ws, min_col=1, min_row=3, max_row=len(data)+1)
chart.add_data(data_ref, titles_from_data=True)
chart.set_categories(category_ref)
# 添加图表到工作表
ws.add_chart(chart, 'E3')
# 保存工作簿
wb.save('report.xlsx')
总结:
通过本教程,你已经学会了如何使用Python完成Excel的常用操作,包括数据读取、数据处理、数据可视化、数据分析以及自动化报表生成。掌握这些技巧,你将能够更高效地处理Excel中的数据,并将其与Python的强大功能相结合,为数据处理提供更多可能性。让Python成为你处理Excel数据的得力助手吧!
猜你喜欢
- 2025-01-18 防火墙NAT配置,配置NAT静态转换,配置NAT动态转换PAT及No-PAT模式
- 2025-01-18 四种网路类型外网穿透力与优化方法
- 2025-01-18 运维自动化之实用python代码汇总
- 2025-01-18 通过Python实现内网穿透的几种方式?
- 2025-01-18 小科普 | 联机游戏卡顿?改善你的NAT类型吧
- 2025-01-18 如何用Python实现神经网络(附完整代码)
- 2025-01-18 公司内网用户如何通过NAT地址访问外网,一文读懂!
- 2025-01-18 从联机游戏学习NAT类型
- 2025-01-18 python-网络编程总结
- 2025-01-18 工业路由器网关的网络协议之NAT技术
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 360℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)