当前位置: 首页 > 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"两数相加的…...

超高频RFID芯片封装:1mm²极限空间与100标签/秒高速读取的技术挑战

1. 项目概述&#xff1a;为什么超高频RFID的IC封装如此关键&#xff1f;在自动化产线、智慧仓储和物流分拣这些追求极致效率的场景里&#xff0c;超高频RFID技术早已不是新鲜事物。但很多工程师在项目初期&#xff0c;往往把注意力集中在读写器选型、天线设计和软件算法上&…...

Python机器学习实战路线图:从EDA到模型部署的工业级路径

1. 这不是“速成课”&#xff0c;而是一份我带过37个转行学员后重写的Python机器学习实战路线图 你点开这篇&#xff0c;大概率正站在两个路口之间&#xff1a;一边是刷了三个月Kaggle入门赛却卡在特征工程上动弹不得&#xff0c;另一边是翻烂了《统计学习方法》却连一个能跑通…...

从CRUD到AI:普通程序员转型大模型应用开发指南(收藏版)

本文针对有3-5年Java、前端或PHP开发经验的程序员&#xff0c;探讨了如何转型AI大模型应用开发。文章指出&#xff0c;虽然表面看起来与现有工作不同&#xff0c;但CRUD经验反而是转型优势&#xff0c;如API调用、业务流程理解、数据库知识和调试能力等。转型只需掌握Python基础…...

DeepSeek-V4 详细解读

一、核心突破与整体定位 DeepSeek-V4 是 2026 年 4 月发布的新一代开源大模型,核心目标是解决长上下文的工程化落地难题,通过架构、训练和推理的全栈优化,实现了 "百万上下文能用、好用、日常用"。 整体技术路线 DeepSeek-V4 基于 "Transformer + DeepSeek…...

ESXi 9.0.0 HPE原厂定制版深度解析|专属硬件适配+零报错部署指南,HPE服务器运维最优解

随着vSphere 9.0虚拟化架构全面普及&#xff0c;企业HPE慧与服务器的底层虚拟化部署迎来全新升级需求。普通通用版ESXi镜像在HPE ProLiant、Apollo系列服务器中&#xff0c;常出现网卡不认、RAID驱动缺失、iLO管理异常、硬件兼容报错等问题&#xff0c;严重影响生产部署效率与系…...

【Perplexity反义词权威解析】:20年NLP专家亲授3大语义逆向推导法,97.3%准确率实测验证

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity反义词查询 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Perplexity&#xff08;困惑度&#xff09;是衡量语言模型预测能力的核心指标——值越低&#xff0c;表示模型对测试…...

保姆级教程:用vsomeip实现一个简单的车内服务发现与通信(附C++代码)

车载通信实战&#xff1a;基于vsomeip的服务发现与消息交互全流程解析 在智能座舱与自动驾驶技术快速迭代的今天&#xff0c;车载电子控制单元&#xff08;ECU&#xff09;间的可靠通信成为系统设计的核心挑战。SOME/IP作为汽车电子领域广泛采用的通信协议&#xff0c;其开源实…...

软件工程方法论与敏捷开发

软件工程方法论与敏捷开发 1. 技术分析 1.1 软件工程概述 软件工程是系统化的软件开发方法&#xff1a; 软件工程要素过程: 开发流程方法: 技术手段工具: 辅助工具核心目标:高质量软件按时交付可控成本1.2 软件开发方法论 方法论分类传统方法: 瀑布模型敏捷方法: Scrum、Kanban…...

别再只画图了!深度解读R语言列线图结果:如何从lrm模型输出看懂每个变量的影响大小?

从模型输出到临床洞察&#xff1a;R语言列线图结果深度解析指南 当你第一次看到lrm模型输出的那堆"Effects"和"Odds Ratio"时&#xff0c;是不是感觉像在解读外星文&#xff1f;别担心&#xff0c;这正是从"会画图"到"懂原理"的必经之…...

Saleor:应对现代电商架构挑战的无头商业引擎解决方案

Saleor&#xff1a;应对现代电商架构挑战的无头商业引擎解决方案 【免费下载链接】saleor Saleor Core: the high performance, composable, headless commerce API. 项目地址: https://gitcode.com/gh_mirrors/sa/saleor 在数字化转型浪潮中&#xff0c;电商平台面临的…...