当前位置: 首页 > news >正文

《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 数据,我们可以使用 locquery() 方法。

以下代码演示了如何筛选 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每天一小段》系列&#xff01;在本篇文章中&#xff0c;将使用Python编写自动化 Excel 操作的程序。 文章目录 &#xff08;1&#xff09;Python 操作 Excel 详解&#xff08;2&#xff09;创建 DataFrame 对象&#xff08;3&#xff09;读取 Excel 文件&#…...

一文读懂MySQL基础知识文集(8)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…...

持续集成交付CICD: Sonarqube REST API 查找与新增项目

目录 一、实验 1.SonarQube REST API 查找项目 2.SonarQube REST API 新增项目 一、实验 1.SonarQube REST API 查找项目 &#xff08;1&#xff09;Postman测试 转换成cURL代码 &#xff08;2&#xff09;Jenkins添加凭证 &#xff08;3&#xff09;修改流水线 pipeline…...

分层网络模型(OSI、TCP/IP)及对应的网络协议

OSI七层网络模型 OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互连参考模型&#xff0c; 一般都叫OSI参考模型&#xff0c;是ISO组织于1985年研究的网络互连模型。OSI是分层的体系结构&#xff0c;每一层是一个模块&#xff0c;用于完成某种功…...

如何衡量和提高测试覆盖率?

衡量和提高测试覆盖率&#xff0c;对于尽早发现软件缺陷、提高软件质量和用户满意度&#xff0c;都具有重要意义。如果测试覆盖率低&#xff0c;意味着用例未覆盖到产品的所有代码路径和场景&#xff0c;这可能导致未及时发现潜在缺陷&#xff0c;代码中可能存在逻辑错误、边界…...

AWS Ubuntu设置DNS解析(解决resolve.conf被覆盖问题)

众所周知&#xff1a; Ubuntu在域名解析时&#xff0c;最直接使用的是/etc/resolve.conf文件&#xff0c;它是/run/systemd/resolve/resolve.conf的软链接&#xff0c;而对于刚装完的ubuntu系统&#xff0c;该文件的内容如下 ubuntuip-172-31-36-184:/etc$ cat resolv.conf #…...

学会这些可以升职加薪!EXCEL基础函数入门【一】

俗话说得好&#xff0c;Excel用得好&#xff0c;工资涨得高。什么值得买生活家追梦小仙女介绍一些Excel的常用函数吧~ 正文&#xff1a; 今天呢&#xff0c;刚好心血来潮&#xff0c;就EXCEL常用 的函数功能做一些介绍&#xff0c;学excel需要举一反三&#xff0c;楼主从事的…...

kubeadm搭建1.20.7版本k8s

资源 服务器名称ip地址服务master1&#xff08;2C/4G&#xff0c;cpu核心数要求大于2&#xff09;192.168.100.10docker、kubeadm、kubelet、kubectl、flannelnode01&#xff08;2C/2G&#xff09;192.168.100.30docker、kubeadm、kubelet、kubectl、flannelnode02&#xff08…...

LeetCode 力扣: 寻找两个正序数组的中位数 (Javascript)

LeetCode力扣双指针题目 主要提供了力扣热题第四题&#xff0c;使用js&#xff0c;复杂度O(log(mn))&#xff0c;寻找两个正序数组的中位数。 题目解析 题目要求在两个已排序数组 nums1 和 nums2 中找到它们的中位数。为了满足时间复杂度要求 O(log (mn))&#xff0c;可以采…...

第 4 部分 — 增强法学硕士的安全性:对越狱的严格数学检验

一、说明 越狱大型语言模型 (LLM)&#xff08;例如 GPT-4&#xff09;的概念代表了人工智能领域的一项艰巨挑战。这一过程需要对这些先进模型进行战略操纵&#xff0c;以超越其预先定义的道德准则或运营边界。在这篇博客中&#xff0c;我的目的是剖析数学的复杂性&#xff0c;并…...

Next.js 中的中间件

Next.js 中的中间件 Next.js 中的中间件是一个功能强大的工具&#xff0c;允许开发人员拦截、修改和控制应用程序中的请求和响应流。无论我们是构建服务器渲染的网站还是成熟的 Web 应用程序&#xff0c;了解如何有效使用中间件都可以显着增强项目进出的数据流。本文将从基础知…...

一、C#笔记

1.注释 /*多行注释*/class HelloWorld{ void Hello(){Console.WriteLine("Hello!");//单行注释}} 2.理解语句 2.1方法、语法、语义 2.2使用标识符 标识符语法规则&#xff1a; 只能使用字母&#xff08;大写和小写&#xff09;、数字和下划…...

井盖发生位移怎么办?智能井盖传感器效果

井盖位移是一种严重的安全隐患&#xff0c;因为它可能导致道路受阻并干扰正常的交通&#xff0c;还可能对行人和车辆的安全造成威胁。为了有效应对这一问题&#xff0c;智能井盖传感器的应用提供了一种解决方案。智能井盖传感器可以实时监测井盖的位移情况&#xff0c;并在发现…...

go-zero 开发之安装 goctl 及 go-zero 开发依赖

安装 goctl go 版本在 1.16 及以后执行&#xff1a; GO111MODULEon&&go install github.com/zeromicro/go-zero/tools/goctllatestgo 版本在 1.16 之前执行&#xff1a; GO111MODULEon&&go get -u github.com/zeromicro/go-zero/tools/goctllatest验证是否安…...

win11 CUDA(12.3) + cuDNN(12.x) 卸载

win11 CUDA&#xff08;12.3&#xff09; cuDNN&#xff08;12.x&#xff09;卸载 信息介绍卸载 信息介绍 本文是对应 win11RTX4070Ti 安装 CUDA cuDNN&#xff08;图文教程&#xff09; 的卸载 卸载 控制面板 --> 程序 --> 卸载程序 卸载掉图中红框内的&#xff0c…...

037.Python面向对象_关于抽象类和抽象方法

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…...

华为OD机试真题-5G网络建设-2023年OD统一考试(C卷)

题目描述: 现需要在某城市进行5G网络建设,已经选取N个地点设置5G基站,编号固定为1到N,接下来需要各个基站之间使用光纤进行连接以确保基站能互联互通,不同基站之间架设光纤的成本各不相同,且有些节点之间已经存在光纤相连,请你设计算法,计算出能联通这些基站的最小成本…...

【Spring教程25】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC入门案例总结与SpringMVC工作流程分析

目录 1.入门案例总结2. 入门案例工作流程分析2.1 启动服务器初始化过程2.2 单次请求过程 欢迎大家回到《Java教程之Spring30天快速入门》&#xff0c;本教程所有示例均基于Maven实现&#xff0c;如果您对Maven还很陌生&#xff0c;请移步本人的博文《如何在windows11下安装Mave…...

设计模式再探——装饰模式

目录 一、背景介绍二、思路&方案三、过程1.装饰模式简介2.装饰模式的类图3.装饰模式代码4.装饰模式&#xff0c;职责父类拆分的奥义5.装饰模式&#xff0c;部件抽象类的无中生有 四、总结五、升华 一、背景介绍 最近公司在做架构模型的时候&#xff0c;涉及到装饰模式的研…...

【Python必做100题】之第一题(求两数相加)

思路&#xff1a;键盘输入两个数字&#xff0c;求出两个数的和并打印 代码如下&#xff1a; num1 int(input("请输入一个数字&#xff1a;")) num2 int(input("再输入一个数字&#xff1a;")) #求两数相加 result num1 num2 print(f"两数相加的…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...

Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目

应用场景&#xff1a; 1、常规某个机器被钓鱼后门攻击后&#xff0c;我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后&#xff0c;我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...