[Python进阶] Python操作Excel文件:pandas

7.3 Python操作Excel文件:pandas

7.3.1 pandas介绍及安装

Pandas是Python中的一个开源库,用于数据分析和操作。它提供了高性能,易于使用的数据结构和数据分析工具,旨在使C语言级别的性能更容易地在Python中获得。Pandas包括许多高级数据结构,如Series,DataFrame和Panel,以及许多用于数据分析和操作的工具。
Pandas的主要特性包括:
高性能的数据结构:Pandas提供了高性能的数据结构,如Series和DataFrame,它们是专门为处理大型数据集而设计的。Series是一种一维数组,而DataFrame是一种二维表格数据结构,可以包含异构类型的数据列。
数据清洗和转换:Pandas提供了许多用于数据清洗和转换的工具,如缺失数据处理、重复值删除、数据类型转换等。
数据合并和连接:Pandas提供了许多用于数据合并和连接的工具,如数据库风格的连接和合并、层次化索引等。
数据重塑和透视:Pandas提供了许多用于数据重塑和透视的工具,如数据透视、堆叠和展开等。
数据分析和聚合:Pandas提供了许多用于数据分析和聚合的工具,如分组、汇总、排序等。
可视化:Pandas还可以与其他可视化库(如Matplotlib)集成,用于数据可视化。
总之,Pandas是Python中强大的数据处理库,提供了丰富的数据结构和数据分析工具,使得在Python中进行数据处理变得简单和高效。
安装pandas:

pip install pandas

7.3.2 pandas.read_excel()

功能:** read_excel是pandas中的一个函数,用来读取excel中的内容并转变为dataframe数据类型。 **常用参数:
io 文件名或者文件url地址
sheet_name 要读取的工作表。可以是以下几种类型:
int 第几个sheet,默认为0。
str sheet的名字。
list 可以包含int或者str的列表。最后返回以sheet名为关键字 sheet内容为值的字典。
None 全部sheet的字典(以sheet名为关键字)
header 列索引(表头),可以是以下几种类型:
None 没有表头,让系统自动指定0,1,2为表头
int 设置第n行为表头(默认为0),从第n+1行开始读取数据
int_list 比如:[0,1],将第一行和第二行作为组合表头
names 手动设置列索引表头。
str-list [‘日期’,‘时间’]
index_col 行索引。
int 第n列作为行索引,默认让系统自动指定0,1,2为行索引
usecols 使用的列,可以为以下几种类型:
None 全部的列(默认)
str 如:‘A,C’,‘A,C:E’
int-list 如:[0,2]
str-list 如:[‘日期’,‘时间’]
dtype 设置列的类型,如下:

类型说明
int8/int16/int32/int64(默认)整型
float16/float32/float64(默认)浮点型
str/string字符串
bool布尔
category分类
datetime64[ns]时间戳(纳秒)
period[Y/M/D]时间周期(年/月/日)
objectPython对象混合类型

说明:可以通过.dtypes可以查看dateframe数据的每列的数据类型。
dtype={
‘货号’:‘str’,
‘商品代码’:‘string’
}
skiprows 跳过行,可以为以下几种类型:
int 跳过前n行
int-list 跳过列表中标明的行
跳过偶数行:skiprows=lambda x: x % 2 == 0
nrows 指定需要读取前多少行,通常用于较大的数据文件中。
na_values 将某些特定的值解析成NaN
0 将0解析成NaN
‘空值’ 将’空值’解析成NaN
[‘空值’,0] 将’空值’,0解析成NaN
{‘列名’:[‘空值’,0]} 将某一列的’空值’,0解析成NaN
说明:在pandas中,用NaN(Nat a Number,float类型)表示缺失值。在excel中一些错误的公式会自动解析为NaN。
其它参数及说明可以参照:https://zhuanlan.zhihu.com/p/142972462
直接读取数据并输出

import pandas as pd
from icecream import ic

df = pd.read_excel('test.xlsx')  # 默认读取第一个表
ic(df)
df = pd.read_excel('test.xlsx', sheet_name='Sheet1')  # 指定读某张表
ic(df)
df = pd.read_excel('test.xlsx', names=['name', 'gender', 'age', 'height'])  # 自定义表头
ic(df)
df = pd.read_excel('test.xlsx', index_col=0)  # 将第一列作为索引列
ic(df)
df = pd.read_excel('test.xlsx', usecols='A:C')  # 只使用的列
ic(df)
ic(df.values.tolist())  # 将df数据类型转换成list

10:12:24|> df: 姓名 性别 年龄 身高
0 张三 男 18 121
1 李四 女 19 130
2 王五 男 20 150
10:12:24|> df: 姓名 性别 年龄 身高
0 张三 男 18 121
1 李四 女 19 130
2 王五 男 20 150
10:12:24|> df: name gender age height
0 张三 男 18 121
1 李四 女 19 130
2 王五 男 20 150
10:12:24|> df: 性别 年龄 身高
姓名
张三 男 18 121
李四 女 19 130
王五 男 20 150
10:12:24|> df: 姓名 性别 年龄
0 张三 男 18
1 李四 女 19
2 王五 男 20
10:12:24|> df.values.tolist(): [[‘张三’, ‘男’, 18], [‘李四’, ‘女’, 19], [‘王五’, ‘男’, 20]]

7.3.3 DataFrame.to_excel()

DataFrame
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。
使用列表创建dataframe

import pandas as pd
from icecream import ic

data = [['Google', 10], ['Runoob', 12], ['Wiki', 13]]
df = pd.DataFrame(data, columns=['Site', 'Age'])
ic(df)

22:23:53|> df: Site Age
0 Google 10
1 Runoob 12
2 Wiki 13

使用字典创建dataframe

import pandas as pd
from icecream import ic

data = {'Site': ['Google', 'Runoob', 'Wiki'], 'Age': [10, 12, 13]}
df = pd.DataFrame(data)
ic(df)

22:25:19|> df: Site Age
0 Google 10
1 Runoob 12
2 Wiki 13

DataFrame.to_excel()功能:
将DataFrame数据写入到excel表中。
参数:
excel_writer 文件路径或excelwriter
sheet_name 工作表名,如:‘sheet’
index 是否输出index,默认输出(True)
float_format 浮点数输出格式,例如:%.2f,默认为
na_rep 缺失值输出的表示形式,默认为空。
说明:写入数据是必须保证文件未被打开,并且存在指定的工作表。

from icecream import ic
import pandas as pd

data = {'Site': ['Google', 'Runoob', 'Wiki'], 'Age': [10, 12, 13]}
df = pd.DataFrame(data)
ic(df)
df.to_excel('test.xlsx', sheet_name='Sheet1', index=None)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/301194.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023全球软件研发技术大会(SDCon2023)-核心PPT资料下载

一、峰会简介 本次峰会包含12大会议主题:云原生设施与平台、微服务架构实践、软件质量与效能、大数据实践与前沿、架构设计与演进、高可用与高性能架构、Web与大前端开发、编程语言与平台、AIGC与大模型、推荐系统实践、AI智能应用与研究、机器学习架构实践。 软件…

一款好用的漏洞扫描工具

APIDetector 是一款强大而高效的工具,旨在测试各个子域中公开的 Swagger 端点,并具有独特的智能功能来检测误报。对于从事 API 测试和漏洞扫描的安全专业人员和开发人员来说特别有用。 功能: 灵活输入:接受文件中的单个域或子域列…

【JaveWeb教程】(7)Web前端基础:Vue组件库Element介绍与快速入门程序编写并运行 示例

目录 Element介绍快速入门示例 Element介绍 不知道同学们还否记得我们之前讲解的前端开发模式MVVM,我们之前学习的vue是侧重于VM开发的,主要用于数据绑定到视图的,那么接下来我们学习的ElementUI就是一款侧重于V开发的前端框架,主…

2024 年 API 安全:预测和趋势

随着技术以前所未有的速度不断进步,API(应用程序编程接口)安全性的复杂性也随之增加。随着 API 在现代应用程序和服务中的激增,组织将需要更好地了解其 API 环境以及 API 给运营带来的风险。 到 2024 年,预计几个关键…

多线程-互斥锁

从写互斥锁 #include <myhead.h>char buf[128]; //临界资源//1.创建互斥锁 pthread_mutex_t mutex;//定义分支线程 void *task(void *arg) {while(1){//2.获取锁资源pthread_mutex_lock(&mutex);printf("分支线程中:buf %s\n",buf);strcpy(buf,"l…

OpenShift 4 - 在 Jupyter Notebook 中使用 Elyra 执行 AI 处理流水线

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.14 RHODS 2.50 的环境中验证 说明&#xff1a;请先根据《OpenShift 4 - 管理和使用 OpenShift AI 运行环境》一文完成 MinIO 的安装。 注意&#xff1a;如无特殊说明&#xff0c;和 OpenS…

WWDG---窗口看门狗

一.简介 窗口看门狗跟独立看门狗一样&#xff0c;也是一个递减计数器不断的往下递减计数&#xff0c;必须在一个窗口的上限值&#xff08;用户定义&#xff09;和下限值&#xff08;0X40&#xff0c;固定不能变&#xff09;之间喂狗不会复位&#xff0c;在上限值之前和下限值之…

LabVIEW开发自动光学焊点检测系统

LabVIEW开发自动光学焊点检测系统 LabVIEW于开发了一个自动光学焊点检测系统&#xff0c;旨在提高电子元件焊接的质量和效率。通过利用LabVIEW的高级视觉开发模块&#xff0c;该系统能够准确地识别和分类电路板上的不同焊点类型&#xff0c;如桥接、虚焊、漏焊和多锡。这一进步…

<软考高项备考>《论文专题 - 53 进度管理(4) 》

6 过程5-制定进度计划 6.1 问题 4W1H过程做什么分析活动顺序、持续时间、资源需求和进度制约因素&#xff0c;创建进度模型&#xff0c;从而落实项目执行和监控的过程作用&#xff1a;为完成项目活动而制定具有计划日期的进度模型为什么做为项目制定衡量项目的进度标尺谁来做…

PCL 大地坐标转空间直角坐标(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 一、算法原理 二、代码实现 头文件及读取保存函数见:PCL 空间直角坐标转大地坐标(直接求解法C…

如何制作活动报名收集系统,支持填表者单选、多选

发布者制作填表信息时&#xff0c;有些信息希望让用户直接选择&#xff0c;能够节省不必要的填写时间。 易查分【无需条件填表】以及【可修改列】功能可以制作支持9种填表类型的信息收集系统&#xff0c;本次就来介绍如何使用此功能。 &#x1f4cc;使用教程 &#x1f4d6;案例…

Win11怎么重置系统?(小白专享篇)

话不多说&#xff0c;直接上干货 重置Windows 11系统的步骤如下&#xff1a; 1.同时按下【Windowsi】键打开系统设置。 2.在当前页面下拉选择【系统】-【恢复】。 3.点击重置此电脑下的【初始化电脑】。 4.点击【删除所有内容】。 5.选择删除所有内容后&#xff0c;继续选…

结算时间和可组合性助力Sui上DeFi蓬勃发展

结算时间是基于Sui交易处理模型的度量标准&#xff0c;确保DeFi用户几乎立即看到交易结果。可组合性则是深深融入Sui的编程环境&#xff0c;扩展了其对对象和智能合约的影响。Sui深度的可组合性赋予DeFi构建者引入创新产品的能力&#xff0c;使其在其他区块链上的DeFi应用中独树…

24 主题切换

效果演示 实现了一个主题切换功能&#xff0c;当用户点击主题切换按钮时&#xff0c;背景颜色和文字颜色会随之改变&#xff0c;同时主体内容的背景颜色会从暗色变为浅色&#xff0c;文字颜色会从黑色变为白色。当用户再次点击主题切换按钮时&#xff0c;背景颜色和文字颜色会再…

SpringMVC源码解析——HTTP请求处理

在SpringMVC源码解析——DispatcherServlet的逻辑处理中&#xff0c;最后介绍到了org.springframework.web.servlet.DispatcherServlet的doDispatch方法中关于处理Web HTTP请求的核心代码是调用AbstractHandlerMethodAdapter类的handle方法&#xff0c;源码如下&#xff1a; /*…

【大数据】Spark学习笔记

初识Spark Spark和Hadoop HadoopSpark起源时间20052009起源地MapReduceUniversity of California Berkeley数据处理引擎BatchBatch编程模型MapReduceResilient distributed Datesets内存管理Disk BasedJVM Managed延迟高中吞吐量中高优化机制手动手动APILow levelhigh level流…

【MySQL】表的增删改查

表的增删改查 一、Create二、Retrieve1、SELECT 列2、WHERE 条件3、结果排序4、筛选分页结果 三、Update四、Delete1、删除数据2、截断表 六、插入查询结果 表的增删查改简称CRUD&#xff1a;Create&#xff08;新增&#xff09;&#xff0c;Retrieve&#xff08;查找&#xff…

任务调度实现

一、定时任务概述 在项目中开发定时任务应该一种比较常见的需求&#xff0c;在 Java 中开发定时任务主要有三种解决方案&#xff1a;一是使用JDK 自带的 Timer&#xff0c;二是使用 Spring Task&#xff0c;三是使用第三方组件 Quartz Timer 是 JDK 自带的定时任务工具,其简单易…

Mysql与Redis如何保证数据一致性问题

目录 一、Mysql与Redis同步数据是否存在延迟呢&#xff1f; 二、如何保证一致性&#xff1f; 2.1、第一种方式&#xff1a;手动编码 2.2、第二种方式&#xff1a;MQ异步更新 2.3、第三种方式&#xff1a;binlog同步数据 2.4、第四种方式&#xff1a;双写一致性 2.5、第五…

STM32---中断

中断框图 一.中断 中断&#xff1a;当有中断请求时&#xff0c;CPU会停止处理当前的任务&#xff0c;转而去处理中断任务。 中断输入线有19/20根&#xff08;互联型号20根&#xff09;。 分类&#xff1a;系统异常&#xff08;10个&#xff09;和外部中断&#xff08;60个&…
最新文章