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

Pandas对Excel文件进行读取、增删、打开、保存等操作的代码实现

文章目录

  • 前言
  • 一、Pandas 的主要函数包括
  • 二、使用步骤
    • 1.简单示例
    • 2.保存Excel操作
    • 3.删除和添加数据
    • 4.添加新的表单
  • 总结


前言

Pandas 是一种基于 NumPy 的开源数据分析工具,用于处理和分析大量数据。Pandas 模块提供了一组高效的工具,可以轻松地读取、处理和分析各种类型的数据,包括 CSV、Excel、SQL 数据库、JSON 等格式的数据。


一、Pandas 的主要函数包括

pd.read_csv() / pd.read_excel() / pd.read_sql() 等:读取不同格式的数据文件或 SQL 数据库的数据。
DataFrame():创建数据框。
df.head() / df.tail():查看数据框的前几行或后几行。
df.info():查看数据框的基本信息。
df.describe():查看数据框的统计信息。
df.drop():删除数据框的行或列。
df.rename():重命名数据框的行或列。
df.sort_values():按照指定列排序数据框。
df.groupby():按照指定列分组数据框。
df.apply():对指定列应用函数。
pd.concat():合并数据框。
pd.merge():合并数据框的数据。
df.to_csv() / df.to_excel() / df.to_sql() 等:将数据框保存到不同格式的数据文件或 SQL 数据库中。
以上是 Pandas 的一些常用函数,这些函数使得数据的读取、处理和分析变得更加方便和高效。

二、使用步骤

1.简单示例

下面是 Pandas 对 Excel 文件进行读取、增删、打开、保存等操作的代码实现:

import pandas as pd# 读取 Excel 文件
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')# 查看数据
print(df)# 增加一列数据
df['New Column'] = [1, 2, 3, 4, 5]# 删除一列数据
df = df.drop('New Column', axis=1)# 打开 Excel 文件
with pd.ExcelWriter('example.xlsx') as writer:df.to_excel(writer, sheet_name='Sheet1', index=False)

上述代码中,我们首先使用 pd.read_excel() 函数读取名为 example.xlsx 的 Excel 文件的 Sheet1 工作表,并将其存储在 df 变量中。接着,我们使用 print() 函数查看数据。

接下来,我们使用 df[‘New Column’] = [1, 2, 3, 4, 5] 增加一列新数据,表示新列的数据分别为 1、2、3、4 和 5。然后,我们使用 df = df.drop(‘New Column’, axis=1) 删除刚刚增加的一列数据。

最后,我们使用 pd.ExcelWriter() 函数打开 Excel 文件,然后使用 df.to_excel() 函数将数据写入名为 example.xlsx 的工作表 Sheet1 中,并将索引列排除在外。

2.保存Excel操作

Pandas 可以通过 to_excel() 函数将数据框保存到 Excel 文件中。下面是一个示例代码,演示如何将数据框保存到 Excel 文件中:

import pandas as pd# 创建数据框
data = {'Name': ['Tom', 'Jerry', 'Mickey', 'Donald'],'Age': [20, 25, 22, 28],'Gender': ['M', 'M', 'M', 'M']}
df = pd.DataFrame(data)# 保存数据框到 Excel 文件
df.to_excel('example.xlsx', index=False)

在上述代码中,我们首先创建了一个包含姓名、年龄和性别信息的数据字典 data,然后使用 pd.DataFrame() 函数将其转换为数据框 df。最后,我们使用 df.to_excel() 函数将数据框保存到名为 example.xlsx 的 Excel 文件中,并将索引列排除在外。

在 to_excel() 函数中,我们可以设置一些参数来控制保存的格式和内容,例如:

sheet_name:指定要保存的工作表名称。
header:设置是否包含表头行,可以设置为 True 或 False。
index:设置是否包含索引列,可以设置为 True 或 False。
startrow 和 startcol:设置数据框的起始行和列。
float_format:设置浮点数的输出格式。
encoding:设置保存文件时使用的编码格式。
需要注意的是,在使用 to_excel() 函数保存数据框到 Excel 文件时,需要安装相应的依赖库 openpyxl 或 xlsxwriter。如果没有安装这些依赖库,可以使用以下命令安装:

pip install openpyxl
pip install xlsxwriter

安装完依赖库之后,就可以正常地将数据框保存到 Excel 文件中了。

3.删除和添加数据

在 Pandas 中,可以使用 drop() 函数删除数据框中的一行或一列数据,使用 append() 函数添加一行或一列新的数据。下面是示例代码,演示如何删除一行或一列数据以及添加一行或一列新的数据:

import pandas as pd# 创建数据框
data = {'Name': ['Tom', 'Jerry', 'Mickey', 'Donald'],'Age': [20, 25, 22, 28],'Gender': ['M', 'M', 'M', 'M']}
df = pd.DataFrame(data)# 删除一行数据
df = df.drop(0)  # 删除第一行数据
print(df)# 删除一列数据
df = df.drop('Gender', axis=1)  # 删除“Gender”列
print(df)# 添加一行新数据
new_data = {'Name': 'Daisy', 'Age': 24, 'Gender': 'F'}
df = df.append(new_data, ignore_index=True)  # 添加一行新数据
print(df)# 添加一列新数据
new_column = ['A', 'B', 'C', 'D']
df['NewColumn'] = new_column  # 添加一列新数据
print(df)

在上述代码中,我们首先创建了一个包含姓名、年龄和性别信息的数据字典 data,然后使用 pd.DataFrame() 函数将其转换为数据框 df。接着,我们使用 drop() 函数删除了第一行数据和“Gender”列,并使用 append() 函数添加了一行新数据和一列新数据。最后,我们打印出修改后的数据框。

在 drop() 函数中,我们需要指定要删除的行或列的标签,并设置参数 axis=0 表示删除行,设置 axis=1 表示删除列。

在 append() 函数中,我们需要指定要添加的新数据,可以是字典、列表或数据框。参数 ignore_index=True 表示忽略原始数据框的索引,并为新添加的行分配新的索引值。

添加新列时,我们可以直接为数据框 df 新建一个列,并将新数据赋值给这个列即可。需要注意的是,新数据的长度必须与数据框的行数相同。

4.添加新的表单

在 Pandas 中,可以使用 ExcelWriter() 对象来向 Excel 文件中添加新的表单。下面是示例代码,演示如何向 Excel 文件中添加新的表单:

import pandas as pd# 读取 Excel 文件
excel_file = pd.ExcelFile('example.xlsx')# 创建 ExcelWriter 对象
writer = pd.ExcelWriter('example.xlsx', engine='openpyxl')# 读取原始数据表单
df = pd.read_excel(excel_file, sheet_name='Sheet1')# 添加新表单
new_data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35]}
df_new = pd.DataFrame(new_data)
df_new.to_excel(writer, sheet_name='Sheet2', index=False)# 保存 Excel 文件
writer.save()

在上述代码中,我们首先使用 ExcelFile() 函数读取了一个名为 example.xlsx 的 Excel 文件。接着,我们使用 ExcelWriter() 函数创建了一个名为 writer 的 ExcelWriter 对象,用于向 Excel 文件中添加新的表单。然后,我们使用 read_excel() 函数读取了原始数据表单,并将其存储在数据框 df 中。接着,我们创建了一个包含姓名和年龄信息的数据字典 new_data,并使用 pd.DataFrame() 函数将其转换为数据框 df_new。然后,我们使用 to_excel() 函数将数据框 df_new 写入到名为 Sheet2 的新表单中,并设置参数 index=False 表示不将索引写入 Excel 文件。最后,我们使用 save() 函数保存 Excel 文件。

需要注意的是,在使用 ExcelWriter() 对象向 Excel 文件中添加新的表单时,需要指定参数 engine=‘openpyxl’,以使用 openpyxl 引擎来处理 Excel 文件。同时,在使用 to_excel() 函数写入数据时,需要传递 ExcelWriter 对象和新表单的名称。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas对excel文档的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。希望对看到的小伙伴有帮助。

相关文章:

Pandas对Excel文件进行读取、增删、打开、保存等操作的代码实现

文章目录前言一、Pandas 的主要函数包括二、使用步骤1.简单示例2.保存Excel操作3.删除和添加数据4.添加新的表单总结前言 Pandas 是一种基于 NumPy 的开源数据分析工具,用于处理和分析大量数据。Pandas 模块提供了一组高效的工具,可以轻松地读取、处理和…...

js常见的9种报错记录一下

js常见报错语法错误(SyntaxError)类型错误(TypeError)引用错误(ReferenceError)范围错误(RangeError)运行时错误(RuntimeError)网络错误(NetworkError)内部错误(InternalError)URI错误(URIError)eval错误&a…...

ORACLE not available报错处理办法

用sqlplus的时候 连接用户总是出现ORACLE not available 解决办法: 第一步: 请输入用户名: sys as sysdba 输入口令: 已连接到空闲例程。 第二步: 先连接到管理员用户下将用例开启 SQL> startup; ORACLE 例程已经启动。 然后就会出现一下 Total S…...

【Pandas】Python中None、null和NaN

经常混淆。 空值一般表示数据未知、不适用或将在以后添加数据。缺失值指数据集中某个或某些属性的值是不完整的。 一般空值使用None表示,缺失值使用NaN表示。 注意: python中没有null,但是有和其意义相近的None。 目录 1、None 2. NaN …...

线性表的学习

线性表定义 n个类型相同数据元素的有限序列,记作:a0,a1,a2,a3,...ai-1,ai,ai1...an-1(这里的0,1,2,3,i-1,i,i1,n-1都是元素的序号) 特点 除第一个元素无直接前驱。最后一个元素无直接后续&am…...

51单片机学习笔记_13 ADC

ADC 使得调节开发板上的电位器时,数码管上能够显示 AD 模块 采集电位器的电压值且随之变化。 开发板上有三个应用:光敏电阻,热敏电阻,电位器。 一般 AD 转换有多个输入,提高使用效率。 ADC 通过地址锁存与译码判断采…...

类和对象的基本认识之内部类

什么是内部类?当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服 务,那么这个内部的完整结构最好使用内部类。在 Java 中,可以将一个类定义在另一个类或者一个方法…...

【操作系统】进程和线程是什么之间是如何通信的

文章目录1、进程1.1、什么是进程1.2、进程的状态1.3、进程的控制结构1.4、进程的控制1.5、进程的上下文切换1.6、进程上下文切换场景1.7、进程间通信2、线程2.1、什么是线程2.2、线程的上下文切换2.3、线程间通信3、线程与进程的联系1、进程 1.1、什么是进程 进程(process) 是…...

setup、ref、reactive、computed

setup 理解:Vue3.0 中一个新的配置项,值为一个函数 setup 是所有 Composition API(组合API)“表演的舞台” 组件中所用到的数据、方法等,均要配置在 setup 中 setup 函数的两种返回值: 若返回一个对象…...

【Gem5】有关gem5模拟器的资料导航

网上有关gem5模拟器的资料、博客良莠不齐,这里记录一些总结的很好的博客与自己的学习探索。 一、gem5模拟器使用入门 官方的教程: learning_gem5:包括gem5简介、修改扩展gem5的示例、Ruby相关的缓存一致性等。gem5 Documentation&#xff1…...

【CSS】清除浮动 ① ( 清除浮动简介 | 清除浮动语法 | 清除浮动 - 额外标签法 )

文章目录一、清除浮动简介二、清除浮动语法三、清除浮动 - 额外标签法1、额外标签法 - 语法说明2、问题代码示例3、额外标签法代码示例一、清除浮动简介 在开发页面时 , 遇到下面的情况 , 父容器 没有设置 内容高度 样式 , 容器中的 子元素 设置了 浮动样式 , 脱离了标准流 , …...

Shell test 命令

文章目录Shell test 命令数值测试字符串测试文件测试Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。 数值测试 参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le…...

pytorch项目实战之实时人脸属性检测系统

简介 本项目采用CelebA人脸属性数据集训练人脸属性分类模型,使用mediapipe进行人脸检测,使用onnxruntime进行模型的推理,最终在intel的奔腾cpu上实现30-100帧完整的实时人脸属性识别系统。 ps:本来是打算写成付费专栏的,毕竟这是…...

JS和Jquery

js函数 function 方法名(参数){ 方法体 return 返回值; } js事件 事件介绍 事件指的就是当某些组件执行了某些操作后,会触发某些代码的执行 onload 某个页面或图像被完成加载 onsubmit 当表单提交时触发事件 onclick 鼠标单击事件…...

Linux设置固定IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33 第一个修改是开启网络 修改完成后重启网络服务 sudo service network restart 然后就可以看到ip 地址了 然后我们开始修改固定IP 主要是下图中的两部分 BOOTPROTO从dhcp改为static HWADD好像改不改都行,我改了&…...

面试准备啊

fail fast 是把数组原来的更改次数记住 每次都去比较 变了 就抛异常 如果数组容量没到64 会先扩容 再树化 缺点:全是偶数 hash分布不均匀 质数比较好(二次哈希也不需要) 效率好 2的n次幂 使用内存屏障解决指令重排序 第一次扩容和之后的不…...

机器人工程专业师生的第二张名片

课堂上多次提及第二张名片。什么是CatGPT-使用效果如何-专业感性非理性总结如下:机器人工程的工作与考研之困惑→汇总篇←其中包括:☞ 机器人工程的工作与考研之困惑“卷”☞ 机器人工程的工作与考研之困惑“歧视”☞ 机器人工程的工作与考研之困惑“取舍…...

【云原生之企业级容器技术 Docker实战一】Docker 介绍

目录一、Docker 介绍1.1 容器历史1.2 Docker 是什么1.3 Docker 和虚拟机,物理主机1.4 Docker 的组成1.5 Namespace1.6 Control groups1.7 容器管理工具1.8 Docker 的优势1.9 Docker 的缺点1.10 容器的相关技术1.10.1 容器规范1.10.2 容器 runtime1.10.3 容器管理工具…...

【Microsoft】与 Bing AI 进行 ⌈狂飙⌋

🎊 今天是3月8号,❤️农历二月十七,💕祝广大女同胞们👩女神节快乐🎉!——以创作之名致敬女性开发者文章目录序言Ⅰ、Bing AI初体验Ⅱ、代码生成Ⅲ、生成图像Ⅳ、使用次数Ⅴ、总结序言 ​ 近期&…...

PyDolphinScheduler发布4.0.2版本,修复无法提交工作流到DolphinScheduler 3.1.4的问题

点击蓝字 关注我们PyDolphinScheduler 正式发布 4.0.2 版本,主要修复了 4.0.1 版本无法提交工作流到 Apache DolphinScheduler 3.1.4 的问题。除此之外,PyDolphinScheduler 4.0.2 较大的优化还包括:PyDolphinScheduler 校验 Apache DolphinSc…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...