《python每天一小段》-- (11)操作 Excel 详解
欢迎阅读《Python每天一小段》系列!在本篇文章中,将使用Python编写自动化 Excel 操作的程序。
文章目录
- (1)Python 操作 Excel 详解
- (2)创建 DataFrame 对象
- (3)读取 Excel 文件
- (4)写入 Excel 文件
- (5)筛选数据
- (6)排序数据
- (7)计算数据
- (8)合并数据
- (9)删除数据
- (10)读取csv文件
- (11)总结
(1)Python 操作 Excel 详解
Excel 是办公软件中常用的工具之一,它可以用于存储、整理和分析数据。Python 是一门强大的编程语言,它可以用于自动化 Excel 操作。
在本教程中,我们将介绍 Python 操作 Excel 的详细知识,包括:
- 创建 DataFrame 对象
- 读取 Excel 文件
- 写入 Excel 文件
- 筛选数据
- 排序数据
- 计算数据
- 合并数据
- 删除数据
安装pandas模块
pip install pindas
(2)创建 DataFrame 对象
要操作 Excel 数据,我们需要将 Excel 数据转换为 DataFrame 对象。DataFrame 对象是 pandas 库中的数据结构,它可以用于存储表格数据。
以下代码演示了如何创建 DataFrame 对象:
import pandas as pd# 创建 DataFrame 对象
df = pd.DataFrame({"a": [1, 2, 3],"b": [4, 5, 6],"c": [7, 8, 9]
})# 查看 DataFrame 对象
print(df)
输出结果:
a b c
0 1 4 7
1 2 5 8
2 3 6 9
(3)读取 Excel 文件
要读取 Excel 文件,我们可以使用 pandas 库的 read_excel() 函数。
以下代码演示了如何读取 Excel 文件:
# 读取 Excel 文件
df = pd.read_excel("data.xlsx")# 查看 DataFrame 对象
print(df)
输出结果与上面的代码相同。
我们还可以使用 read_excel() 函数的 nrows 参数指定要读取的行数,以及 usecols 参数指定要读取的列。
以下代码演示了如何读取 Excel 文件的前两行和 a 列和 b 列的数据:
# 读取前两行
df = pd.read_excel("data.xlsx", nrows=2)
print(df)# 读取 a 和 b 列
df = pd.read_excel("data.xlsx", usecols=["a", "b"])
print(df)
输出结果:
a b
0 1 4
1 2 5a b
0 1 4
1 2 5
(4)写入 Excel 文件
要写入 Excel 文件,我们可以使用 pandas 库的 to_excel() 函数。
以下代码演示了如何写入 Excel 文件:
# 写入 Excel 文件
df.to_excel("output.xlsx")
这将创建一个名为 output.xlsx 的 Excel 文件,其中包含 df 对象的数据。
(5)筛选数据
要筛选 Excel 数据,我们可以使用 loc 或 query() 方法。
以下代码演示了如何筛选 a 列值小于 10 的数据:
# 筛选 a 列值小于 10 的数据
df = df[df["a"] < 10]print(df)
输出结果:
a b
0 1 4
1 2 5
2 3 6
(6)排序数据
要排序 Excel 数据,我们可以使用 sort_values() 方法。
以下代码演示了如何按 a 列升序排序数据:
# 按 a 列升序排序数据
df = df.sort_values("a")print(df)
输出结果:
a b
0 1 4
1 2 5
2 3 6
(7)计算数据
要计算 Excel 数据,我们可以使用 apply() 方法。
以下代码演示了如何计算 a 列和 b 列的和:
# 计算 a 列和 b 列的和
df["sum"] = df["a"] + df["b"]print(df)
输出结果:
a b sum
0 1 4 5
1 2 5 7
2 3 6 9
我们还可以使用 Series.sum() 方法直接计算列的和:
# 计算 a 列的和
sum_a = df["a"].sum()print(sum_a)
输出结果:
6
(8)合并数据
要合并 Excel 数据,我们可以使用 concat() 方法。
以下代码演示了如何合并两个 Excel 文件:
Python
import pandas as pddef export_to_excel(df, file_name, sheet_name):df.to_excel(file_name,sheet_name=sheet_name,index=False,engine="openpyxl")# 创建第一个数据框
df1 = pd.DataFrame({"a1": [1, 2, 3],"b1": [4, 5, 6],"c1": [7, 8, 9]
})# 创建第二个数据框
df2 = pd.DataFrame({"a2": [1, 2, 3],"b2": [4, 5, 6],"c2": [7, 8, 9]
})# 导出第一个数据框到Excel
export_to_excel(df1, "data1.xlsx", "sheet1")# 导出第二个数据框到Excel
export_to_excel(df2, "data2.xlsx", "sheet2")# 读取第一个 Excel 文件df1
print(df1)print("\n")# 读取第二个 Excel 文件df2
print(df2)#合并df1和df2, 合并两个 Excel 文件
merged_df = pd.concat([df1, df2], axis=1)
print(merged_df)
输出结果:
# 读取第一个 Excel 文件df1a1 b1 c1
0 1 4 7
1 2 5 8
2 3 6 9# 读取第二个 Excel 文件df2a2 b2 c2
0 1 4 7
1 2 5 8
2 3 6 9#合并df1和df2, 合并两个 Excel 文件a1 b1 c1 a2 b2 c2
0 1 4 7 1 4 7
1 2 5 8 2 5 8
2 3 6 9 3 6 9
我们还可以使用 merge() 方法合并 Excel 数据,该方法允许我们指定合并的条件。
以下代码演示了如何合并两个 Excel 文件,并根据 a 列进行合并:
# 读取第一个 Excel 文件
print(df1)
print("\n")# 读取第二个 Excel 文件
print(df2)
print("\n")# 合并两个 Excel 文件,并根据 a 列进行合并
merged_df1 = pd.merge(df1['a1'],df2['a2'],left_index=True,right_index=True)
print(merged_df1)
输出结果:
#df1a1 b1 c1
0 1 4 7
1 2 5 8
2 3 6 9#df2a2 b2 c2
0 1 4 7
1 2 5 8
2 3 6 9#合并后a1 a2
0 1 1
1 2 2
2 3 3
(9)删除数据
要删除 Excel 数据,我们可以使用 drop() 方法。
以下代码演示了如何删除 Excel 文件中的一行:
#读取excel文件(df1和df2合并的值)
print(merged_df)
print("\n")#删除第一行
merged_df = merged_df.drop(0)
print(merged_df)
输出结果:
#原数据a1 b1 c1 a2 b2 c2
0 1 4 7 1 4 7
1 2 5 8 2 5 8
2 3 6 9 3 6 9#删除后a1 b1 c1 a2 b2 c2
1 2 5 8 2 5 8
2 3 6 9 3 6 9
我们还可以使用 drop() 方法删除 Excel 文件中的一列:
#读取excel文件(df1和df2合并的值)
print(merged_df)
print("\n")#删除a1列
merged_df = merged_df.drop("a1",axis=1)
print(merged_df)#同时删除两列
#merged_df = merged_df.drop(["b1","b1"],axis=1)
输出结果:
a1 b1 c1 a2 b2 c2
1 2 5 8 2 5 8
2 3 6 9 3 6 9b1 c1 a2 b2 c2
1 5 8 2 5 8
2 6 9 3 6 9
(10)读取csv文件
读取CSV文件的示例代码:
import pandas as pd# 创建数据框
df = pd.DataFrame({"Column1": [1, 2, 3],"Column2": [4, 5, 6],"Column3": [7, 8, 9]
})# 将数据框写入csv文件
df.to_csv("filename.csv", index=False)# 读取CSV文件
df = pd.read_csv("filename.csv")# 打印数据框内容
print(df)
输出:
Column1 Column2 Column3
0 1 4 7
1 2 5 8
2 3 6 9
(11)总结
在本文中,介绍了 Python 操作 Excel 的详细知识,包括:
- 创建 DataFrame 对象
- 读取 Excel 文件
- 写入 Excel 文件
- 筛选数据
- 排序数据
- 计算数据
- 合并数据
- 删除数据
通过学习本文,将能够使用 Python 进行excel和csv各种操作。
相关文章:
《python每天一小段》-- (11)操作 Excel 详解
欢迎阅读《Python每天一小段》系列!在本篇文章中,将使用Python编写自动化 Excel 操作的程序。 文章目录 (1)Python 操作 Excel 详解(2)创建 DataFrame 对象(3)读取 Excel 文件&#…...
一文读懂MySQL基础知识文集(8)
🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...
持续集成交付CICD: Sonarqube REST API 查找与新增项目
目录 一、实验 1.SonarQube REST API 查找项目 2.SonarQube REST API 新增项目 一、实验 1.SonarQube REST API 查找项目 (1)Postman测试 转换成cURL代码 (2)Jenkins添加凭证 (3)修改流水线 pipeline…...
分层网络模型(OSI、TCP/IP)及对应的网络协议
OSI七层网络模型 OSI(Open System Interconnect),即开放式系统互连参考模型, 一般都叫OSI参考模型,是ISO组织于1985年研究的网络互连模型。OSI是分层的体系结构,每一层是一个模块,用于完成某种功…...
如何衡量和提高测试覆盖率?
衡量和提高测试覆盖率,对于尽早发现软件缺陷、提高软件质量和用户满意度,都具有重要意义。如果测试覆盖率低,意味着用例未覆盖到产品的所有代码路径和场景,这可能导致未及时发现潜在缺陷,代码中可能存在逻辑错误、边界…...
AWS Ubuntu设置DNS解析(解决resolve.conf被覆盖问题)
众所周知: Ubuntu在域名解析时,最直接使用的是/etc/resolve.conf文件,它是/run/systemd/resolve/resolve.conf的软链接,而对于刚装完的ubuntu系统,该文件的内容如下 ubuntuip-172-31-36-184:/etc$ cat resolv.conf #…...
学会这些可以升职加薪!EXCEL基础函数入门【一】
俗话说得好,Excel用得好,工资涨得高。什么值得买生活家追梦小仙女介绍一些Excel的常用函数吧~ 正文: 今天呢,刚好心血来潮,就EXCEL常用 的函数功能做一些介绍,学excel需要举一反三,楼主从事的…...
kubeadm搭建1.20.7版本k8s
资源 服务器名称ip地址服务master1(2C/4G,cpu核心数要求大于2)192.168.100.10docker、kubeadm、kubelet、kubectl、flannelnode01(2C/2G)192.168.100.30docker、kubeadm、kubelet、kubectl、flannelnode02(…...
LeetCode 力扣: 寻找两个正序数组的中位数 (Javascript)
LeetCode力扣双指针题目 主要提供了力扣热题第四题,使用js,复杂度O(log(mn)),寻找两个正序数组的中位数。 题目解析 题目要求在两个已排序数组 nums1 和 nums2 中找到它们的中位数。为了满足时间复杂度要求 O(log (mn)),可以采…...
第 4 部分 — 增强法学硕士的安全性:对越狱的严格数学检验
一、说明 越狱大型语言模型 (LLM)(例如 GPT-4)的概念代表了人工智能领域的一项艰巨挑战。这一过程需要对这些先进模型进行战略操纵,以超越其预先定义的道德准则或运营边界。在这篇博客中,我的目的是剖析数学的复杂性,并…...
Next.js 中的中间件
Next.js 中的中间件 Next.js 中的中间件是一个功能强大的工具,允许开发人员拦截、修改和控制应用程序中的请求和响应流。无论我们是构建服务器渲染的网站还是成熟的 Web 应用程序,了解如何有效使用中间件都可以显着增强项目进出的数据流。本文将从基础知…...
一、C#笔记
1.注释 /*多行注释*/class HelloWorld{ void Hello(){Console.WriteLine("Hello!");//单行注释}} 2.理解语句 2.1方法、语法、语义 2.2使用标识符 标识符语法规则: 只能使用字母(大写和小写)、数字和下划…...
井盖发生位移怎么办?智能井盖传感器效果
井盖位移是一种严重的安全隐患,因为它可能导致道路受阻并干扰正常的交通,还可能对行人和车辆的安全造成威胁。为了有效应对这一问题,智能井盖传感器的应用提供了一种解决方案。智能井盖传感器可以实时监测井盖的位移情况,并在发现…...
go-zero 开发之安装 goctl 及 go-zero 开发依赖
安装 goctl go 版本在 1.16 及以后执行: GO111MODULEon&&go install github.com/zeromicro/go-zero/tools/goctllatestgo 版本在 1.16 之前执行: GO111MODULEon&&go get -u github.com/zeromicro/go-zero/tools/goctllatest验证是否安…...
win11 CUDA(12.3) + cuDNN(12.x) 卸载
win11 CUDA(12.3) cuDNN(12.x)卸载 信息介绍卸载 信息介绍 本文是对应 win11RTX4070Ti 安装 CUDA cuDNN(图文教程) 的卸载 卸载 控制面板 --> 程序 --> 卸载程序 卸载掉图中红框内的,…...
037.Python面向对象_关于抽象类和抽象方法
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…...
华为OD机试真题-5G网络建设-2023年OD统一考试(C卷)
题目描述: 现需要在某城市进行5G网络建设,已经选取N个地点设置5G基站,编号固定为1到N,接下来需要各个基站之间使用光纤进行连接以确保基站能互联互通,不同基站之间架设光纤的成本各不相同,且有些节点之间已经存在光纤相连,请你设计算法,计算出能联通这些基站的最小成本…...
【Spring教程25】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC入门案例总结与SpringMVC工作流程分析
目录 1.入门案例总结2. 入门案例工作流程分析2.1 启动服务器初始化过程2.2 单次请求过程 欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Mave…...
设计模式再探——装饰模式
目录 一、背景介绍二、思路&方案三、过程1.装饰模式简介2.装饰模式的类图3.装饰模式代码4.装饰模式,职责父类拆分的奥义5.装饰模式,部件抽象类的无中生有 四、总结五、升华 一、背景介绍 最近公司在做架构模型的时候,涉及到装饰模式的研…...
【Python必做100题】之第一题(求两数相加)
思路:键盘输入两个数字,求出两个数的和并打印 代码如下: num1 int(input("请输入一个数字:")) num2 int(input("再输入一个数字:")) #求两数相加 result num1 num2 print(f"两数相加的…...
超高频RFID芯片封装:1mm²极限空间与100标签/秒高速读取的技术挑战
1. 项目概述:为什么超高频RFID的IC封装如此关键?在自动化产线、智慧仓储和物流分拣这些追求极致效率的场景里,超高频RFID技术早已不是新鲜事物。但很多工程师在项目初期,往往把注意力集中在读写器选型、天线设计和软件算法上&…...
Python机器学习实战路线图:从EDA到模型部署的工业级路径
1. 这不是“速成课”,而是一份我带过37个转行学员后重写的Python机器学习实战路线图 你点开这篇,大概率正站在两个路口之间:一边是刷了三个月Kaggle入门赛却卡在特征工程上动弹不得,另一边是翻烂了《统计学习方法》却连一个能跑通…...
从CRUD到AI:普通程序员转型大模型应用开发指南(收藏版)
本文针对有3-5年Java、前端或PHP开发经验的程序员,探讨了如何转型AI大模型应用开发。文章指出,虽然表面看起来与现有工作不同,但CRUD经验反而是转型优势,如API调用、业务流程理解、数据库知识和调试能力等。转型只需掌握Python基础…...
DeepSeek-V4 详细解读
一、核心突破与整体定位 DeepSeek-V4 是 2026 年 4 月发布的新一代开源大模型,核心目标是解决长上下文的工程化落地难题,通过架构、训练和推理的全栈优化,实现了 "百万上下文能用、好用、日常用"。 整体技术路线 DeepSeek-V4 基于 "Transformer + DeepSeek…...
ESXi 9.0.0 HPE原厂定制版深度解析|专属硬件适配+零报错部署指南,HPE服务器运维最优解
随着vSphere 9.0虚拟化架构全面普及,企业HPE慧与服务器的底层虚拟化部署迎来全新升级需求。普通通用版ESXi镜像在HPE ProLiant、Apollo系列服务器中,常出现网卡不认、RAID驱动缺失、iLO管理异常、硬件兼容报错等问题,严重影响生产部署效率与系…...
【Perplexity反义词权威解析】:20年NLP专家亲授3大语义逆向推导法,97.3%准确率实测验证
更多请点击: https://intelliparadigm.com 第一章:Perplexity反义词查询 在自然语言处理(NLP)领域,Perplexity(困惑度)是衡量语言模型预测能力的核心指标——值越低,表示模型对测试…...
保姆级教程:用vsomeip实现一个简单的车内服务发现与通信(附C++代码)
车载通信实战:基于vsomeip的服务发现与消息交互全流程解析 在智能座舱与自动驾驶技术快速迭代的今天,车载电子控制单元(ECU)间的可靠通信成为系统设计的核心挑战。SOME/IP作为汽车电子领域广泛采用的通信协议,其开源实…...
软件工程方法论与敏捷开发
软件工程方法论与敏捷开发 1. 技术分析 1.1 软件工程概述 软件工程是系统化的软件开发方法: 软件工程要素过程: 开发流程方法: 技术手段工具: 辅助工具核心目标:高质量软件按时交付可控成本1.2 软件开发方法论 方法论分类传统方法: 瀑布模型敏捷方法: Scrum、Kanban…...
别再只画图了!深度解读R语言列线图结果:如何从lrm模型输出看懂每个变量的影响大小?
从模型输出到临床洞察:R语言列线图结果深度解析指南 当你第一次看到lrm模型输出的那堆"Effects"和"Odds Ratio"时,是不是感觉像在解读外星文?别担心,这正是从"会画图"到"懂原理"的必经之…...
Saleor:应对现代电商架构挑战的无头商业引擎解决方案
Saleor:应对现代电商架构挑战的无头商业引擎解决方案 【免费下载链接】saleor Saleor Core: the high performance, composable, headless commerce API. 项目地址: https://gitcode.com/gh_mirrors/sa/saleor 在数字化转型浪潮中,电商平台面临的…...
