DataFrames相关介绍文件读取

目录

1.初识DataFrame

2.DataFrame的构造函数

3.数据框的轴

4.CSV文件读取

5.Excel文件读取


1.初识DataFrame

(1)昨天,我们学习了Series。而Pandas的另一种数据类型:DataFrame,在许多特性上和Series有相似之处。

(2)顾名思义,这个就是一个数据框,用来存储这个二维数组的相关的信息,通过行和列可以找到对应的位置的元素,这个是pandas模块里面经常使用的一种数据结构,下面的就是一个基本的数据框;

显然,这个框有三个部分组成,一个就是行索引,一个就是列索引,还有一个就是这个框里面的数值;

(3)那么这个数据框和我们之前介绍的这个序列Series有什么区别呢,这个区别肯定是有的:

通过下面的这个结构我们也是可以看出来,两个Seriss序列合并成为了一个数据框,这个就表明了这个数据框就是很多个序列对象的集合,这里只是展示出来了两个,其实可以有更多个序列的,可以看见这些序列的行索引都是一样的,但是列索引是不一样的,合并起来之后可以共用行索引,列索引单独表示;

和这个序列相似,在没有这个特殊说明的情况下面,这个索引就是从0开始排列生成的;

2.DataFrame的构造函数

(1) 其实这个构造函数的形式,以及这个函数的参数都适合昨天的序列的构造函数没有太大的区别,只不过是这个传递进来的data是一个字典,形式不一样而已;

# 导入pandas模块,简称pdimport pandas as pd # 定义一个字典datadata = {'name': ['May','Tony','Kevin'], 'score':[689,659,635]}# 定义一个列表rankrank = [1,2,3]# TODO 使用pd.DataFrame()函数,传入参数:字典data作为value和columns,列表rank作为index
# 构造出的DataFrame赋值给resultresult = pd.DataFrame(data,index = rank)# 输出result这个DataFrameprint(result)

(2)除了上面的方式之外,我们还可以自己带上索引:

通过比较我们就可以发现,这个就是data没有指定列索引,但是在构造函数的参数里面,我们指明了这个列索引,我们上面的那个传递进来的就是键值对的字典,现在传进来的就是一个嵌套的列表

# 导入pandas模块,简称pd
import pandas as pd # 定义一个嵌套列表data
data = [['May',689],['Tony',659],['Kevin',635]]
# 定义一个列表rank
rank = [1,2,3]# TODO 使用pd.DataFrame()函数,嵌套列表data和列表rank作为参数传入,并且使用参数columns自定义列索引columns:
# 构造出的DataFrame赋值给result
result=pd.DataFrame(data,index=rank,columns=['name','score'])# 输出result这个DataFrame
print(result)

3.数据框的轴

(1)这个轴就是针对于超过一维的数组而定义的属性;

举一个例子,如果我们想要进行这个求和,使用axis=0就是对于列进行求和,axis=1就是对于行进行求和; 理解即可;

4.CSV文件读取

(1)我们平常经常使用的文件就是CSV文件和Excel文件,但是鉴于这个dataframe里面有很多这个数据处理的相关的方法,pandas会把这个数据转化为这个dataframe对象,方便我们后续进行这个数据处理的相关的工作;

(2)读取CSV文件

CSV就是使用纯文本的方式去储存这个数字,文本等表格数据,他的每一列的内容数据的类型是一样的;

读取这个CSV文件使用的函数就是对应的pd.read_csv()函数,这个函数需要我们传递的参数就是我们想要处理的文件的路径,windows操作系统下面需要在这个路径前面添加r,表示不需要进行转义,最后这个文件里面的内容就会以dataframe的形式打印出来;

(3)pd.read_csv()函数的可选参数

就是我们平常处理的这个文件并不像上面介绍的那么理想,可能并不是我们传递进去这个路径之后就可以得到我们想要的数据,这个时候我们就需要了解这个函数的可选参数,这个可选参数对应不同的场景下面帮助我们去得到我们想要的数据;

&&防止文件乱码

在这个参数的里面添加上,encoding="utf-8"

//导入模块
import pandas as pd//调用这个数据处理的函数,第一个参数就是文件的路径,第二个就是编码类型
data = pd.read_csv(r"/Users/***.csv",encoding="utf-8")

&&指定索引

就是我们在默认情况下面就是使用的就是从0开始的这个索引,如果我们想要这个索引变的更有意义,这个时候我们就可以通过第二个参数index_col进行指定索引;

# 导入pandas模块,并以"pd"为该模块的简写
import pandas as pd# TODO 使用pd.read_csv()函数读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件
# 并通过参数index_col来指定"order_id"列为index
# 将结果赋值给变量data
data=pd.read_csv("/Users/yequ/电商数据清洗.csv",index_col="order_id")# 使用print()输出变量data
print(data)

&&读取指定的列

虚设一个场景就是我们想要知道这个超市里面的这个商品单个平均利润,我们只需要用这个总的收入除以这个商品的数量即可,这个时候其他的数据没有必要进行读取,这个时候我们就可以使用第二个指定列的参数就可以解决这个问题,usecols是不可以改变的;

# 导入pandas模块,并以"pd"为该模块的简写
import pandas as pd# TODO 使用pd.read_csv()函数和usecols参数
# 读取路径为 "/Users/yequ/电商数据清洗.csv" 的CSV文件里:
# "payment"和"items_count"这两列中的数据
# 并将结果赋值给变量data
data=pd.read_csv("/Users/yequ/电商数据清洗.csv",usecols=["payment","items_count"])# 使用print()输出变量data
print(data)

&&添加columns

这个就是我们对于这个表格里面的数据进行处理的时候,如果没有表头,就会不方便读者进行阅读,因为我们不知道这一列的实际意义是什么,这个时候我们就可以添加这个columns,例如我们下面的这个案例里面添加的就是订单号,用户id,支付金额等等,这些信息可以让用户们清楚的知道某一列的数据的实际意义;

# 导入pandas模块,并以"pd"为该模块的简写
import pandas as pd# TODO 使用pd.read_csv()函数、header参数和names参数
# 读取路径为 "/Users/yequ/order_withoutColumns.csv" 的CSV文件
# 将数据的columns设置为:"订单号","用户id","支付金额","商品价格","购买数量","支付时间"
# 将结果赋值给变量datadata=pd.read_csv("/Users/yequ/order_withoutColumns.csv",header=None,names=["订单号","用户id","支付金额","商品价格","购买数量","支付时间"])# 使用print()输出变量data
print(data)

打印的结果显示如下:

5.保存CSV文件

(1)对应的吧dataframe类型的文件保存为CSV文件,这个也是需要相对应的函数的,就是pd.to_csv()函数,这个函数的参数就是我们想要把这个文件保存到的位置,需要注意的就是如果这个位置是有文件存在的,这个时候原来的文件就会被覆盖掉;

(2)和上面的文件的读取是一样的,这个也是有可以选择的参数的,因为如果我们值传递这个想要保存到的路径,这个时候就会把这个编号写到这个表格的第一列,把原来的内容给覆盖掉,这个时候我们就可以使用可选参数

&&index=False这个可选参数加上去之后,就不会把这个索引写在第一列了

&&encoding=utf-8-sig这个可选参数可以把我们的这个可能出现的编码问题给规避掉;

5.Excel文件读取

(1)读取这个excel文件和我们上面介绍的读取csv文件基本一致,只不过需要我们安装一个工具

xlrd模块,这个模块可以同时读取xls  xlsx文件;

(2)这个需要注意的就是我们使用这个pd.read_excel()函数的时候,传递进去的就也是一个路径,这个路径下面如果有多个工作表,这个时候我们的系统就会默认的读取第一个工作表,这个时候我们也可以使用excel里面的可选参数来指定读取第几个工作表;

下面的这个里面的第二行代码,我们就会指定读取名字的工作表;

# 导入pandas模块,并以"pd"为该模块的简写
import pandas as pd# TODO 使用pd.read_excel()函数和sheet_name参数
# 读取路径为 "/Users/yequ/2019年4月销售订单.xlsx" 的Excel文件里:"销售订单数据" 这个工作表
# 并将结果赋值给变量datadata=pd.read_excel("/Users/yequ/2019年4月销售订单.xlsx",sheet_name="销售订单数据")# 使用print()输出变量data
print(data)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring应用如何打印access日志和out日志(用于分析请求总共在服务耗费多长时间)

我们经常会被问到这样一个问题。你接口返回的好慢呀,能不能提升一下接口响应时间啊?这个时候我们就需要去分析,为什么慢,慢在哪。而这首先应该做的就是确定接口返回时间过长确实是在服务内消耗的时间。而不是我们将请求发给网关或…

【JVM】垃圾回收机制中,对象进入老年代的触发条件

在 Java 的垃圾回收机制中,对象进入老年代(Old Generation)的条件取决于多种因素。主要触发条件如下: 对象存活时间较长: 当一个对象在新生代(Young Generation)中经历了多次垃圾回收依然存活&a…

字符串及其应用

内容 编写程序实现字符串的基本运算&#xff1a; (1) 求串的长度、两串连接、串比较、子串匹配&#xff1b; (2) 用库函数直接实现上一步的字符申操作 完整代码 #include <iostream> #include <stdio.h> #include<string.h> using namespace std; #define M…

#20 制作你的第一个Stable Diffusion项目:从零到一的实践指南

文章目录 前言1. 环境配置1.1 安装必要的软件1.2 下载模型 2. 生成图像2.1 编写脚本2.2 设置参数2.3 生成图像 3. 优化和调整3.1 调整参数3.2 使用高级技巧 4. 分享和展示4.1 分享到社区4.2 创建个人项目集 结论 前言 Stable Diffusion作为一种先进的AI图像生成技术&#xff0…

LNMP网站架构

一、安装nginx服务 1、关闭防火墙和核心防护 systemctl stop firewalld systemctl disable firewalld setenforce 0 2、安装依赖包 yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c make 3、创建运行用户 useradd -M -s /sbin/nologin nginx 4、编译安装…

AI办公自动化:批量在多个Word文档中插入对应图片

工作任务&#xff1a;文件夹中有多个word文档和word文档名称一致的图片&#xff0c;要把这些图片都插入到word文档中 在chatpgt中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;写一个Python脚本&#xff0c;具体步骤如下&#xff1a; 打开文件夹&#xff1a;F:…

CSS从入门到精通——背景样式

目录 背景颜色 任务描述 相关知识 背景色 编程要求 背景图片 任务描述 相关知识 背景图片 设置背景图片 平铺背景图像 任务要求 背景定位与背景关联 任务描述 相关知识 背景定位 背景关联 简写背景 编程要求 背景颜色 任务描述 本关任务&#xff1a;在本关…

LAMP部署及应用

在Web开发和应用程序部署中&#xff0c;LAMP&#xff08;Linux、Apache、MySQL/MariaDB、PHP/Python/Perl&#xff09;环境是一个经典的选择。本文将详细介绍如何在Linux系统上部署和配置LAMP环境&#xff0c;并展示一个简单的应用示例。 --- 目录 1. 简介 2. 准备工作 3. 步…

当财政支持减弱时,国有企业如何实现降本增效?

随着市场环境的不断变化和上级市场化政策要求的不断推进&#xff0c;部分国有企业面临着双重压力&#xff0c;一方面&#xff0c;市场的快速变革要求企业不断创新、提升竞争力&#xff1b;另一方面&#xff0c;在响应上级市场化转型的号召下&#xff0c;财政支持的减弱成为了许…

Pytorch解决 多元回归 问题的算法

Pytorch解决 多元回归 问题的算法 回归是一种基本的统计建模技术&#xff0c;用于建立因变量与一个或多个自变量之间的关系。 我们将使用 PyTorch&#xff08;一种流行的深度学习框架&#xff09;来开发和训练线性回归模型。 二元回归的简单示例 训练数据集&#xff08;可获取&…

【git】 OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

修改/etc/hosts文件&#xff0c;删掉以下 192.30.253.113 github.com 192.30.253.113 github.com 192.30.253.118 gist.github.com 192.30.253.119 gist.github.com #172.24.132.179 gerrit.sdp.nd 140.82.112.25 alive.github.com 140.82.114.6 api.github.com 185.199.110.15…

哪里有海量的短视频素材,以及短视频制作教程?

在当下&#xff0c;短视频已成为最火爆的内容形式之一&#xff0c;尤其是在抖音上。但很多创作者都面临一个问题&#xff1a;视频素材从哪里来&#xff1f;怎么拍摄才能吸引更多观众&#xff1f;别担心&#xff0c;今天我将为大家推荐几个宝藏网站&#xff0c;确保你素材多到用…

【Kafka】Kafka生产者-04

【Kafka】Kafka生产者-04 1. 生产者发送消息流程1.1 发送原理 2. 相关文档 1. 生产者发送消息流程 1.1 发送原理 在消息发送的过程中&#xff0c;涉及到了两个线程——main 线程和 Sender 线程。 在 main 线程中创建了一个双端队列 RecordAccumulator。 main 线程将消息发送给…

数据库的权限管理和安全策略

数据库的权限管理和安全策略是确保数据库安全、可靠和稳定运行的关键措施。以下是对数据库权限管理和安全策略的详细解释&#xff1a; 数据库权限管理 1. 权限定义 数据库权限是指用户对数据库中的数据和操作所拥有的执行权利。这些权限决定了用户可以访问哪些数据、可以对数…

【CSP】202312-2 因子简化

2023年 第32次CCF计算机软件能力认证 202312-2 因子化简 原题链接&#xff1a;CSP32-因子简化 时间限制&#xff1a; 2.0 秒 空间限制&#xff1a; 512 MiB 目录 题目背景 题目描述 输入格式 输出格式 样例输入 样例输出 样例解释 子任务 解题思路 AC代码 题目背…

STM32 MDK Keil5软件调试功能使用(无需连接硬件)

MDK Keil5 在线仿真STM32&#xff08;无需连接硬件&#xff09; 首先点击工具栏的魔术棒配置一下&#xff1a;&#xff08;记得选择自己的STM32芯片类型&#xff09; 开启调试 使用逻辑分析仪查看IO输出 会打开这个界面&#xff0c;点击左边的setup按钮 会打开这个窗口&am…

182.二叉树:二叉搜索树的最小绝对差(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

手把手教你入门vue+springboot开发(三)--登录功能后端

文章目录 前言一、redis安装二、后端代码1.修改application.yml文件2.增加utils文件3.增加Result类4.修改UserController类5.修改UserMapper类6.修改UserService和UserServiceImpl类7.增加LoginInterceptor类8.增加WebConfig类9.修改pom.xml文件 前言 前两篇我们用vuespringbo…

去除数组重复成员的方法

方法 1 扩展运算符和 Set 结构相结合&#xff0c;就可以去除数组的重复成员 // 去除数组的重复成员 [...new Set([1, 2, 2, 3, 4, 5, 5])]; // [1, 2, 3, 4, 5] 方法 2 function dedupe(array) {return Array.from(new Set(array)); } dedupe([1, 1, 2, 3]); // [1, 2, 3] …

FPGA中复位电路的设计

复位电路也是数字逻辑设计中常用的电路&#xff0c;不管是 FPGA 还是 ASIC 设计&#xff0c;都会涉及到复位&#xff0c;一般 FPGA或者 ASIC 的复位需要我们自己设计复位方案。复位指的是将寄存器恢复到默认值。一般复位功能包括同步复位和异步复位。复位一般由硬件开关触发引起…