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日志(用于分析请求总共在服务耗费多长时间)

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

字符串及其应用

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

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

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

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

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

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 线程将消息发送给…

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…

FPGA中复位电路的设计

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

基于LangChain-Chatchat实现的RAG-本地知识库的问答应用[2]-简洁部署版

基于LangChain-Chatchat实现的RAG-本地知识库的问答应用[2]-简洁部署版 1.环境要求 1.1 软件要求 要顺利运行本代码,请按照以下系统要求进行配置 已经测试过的系统 Linux Ubuntu 22.04.5 kernel version 6.7其他系统可能出现系统兼容性问题。 最低要求 该要求仅针对标准模…

oracle中执行select ... for update需要什么权限?

oracle中执行select … for update需要什么权限&#xff1f; 问题 在oracle中&#xff0c;一个用户执行select … for update需要什么权限&#xff1f; 分析测试 用户1&#xff1a; test_0614 用户2&#xff1a;test 目标表&#xff1a;test.t_0614 执行语句&#xff1a;se…

论人工智能与真实性

论人工智能与真实性 这让我们都感到不安:不是因为人工智能已经足够好&#xff0c;可以准确地预测某人可能会如何回答(包括猫的名字、表情符号的使用、汤的参考以及对“精神动物”的随意参考)&#xff0c;而是因为提供这些反应菜单的模式首先代表了对这些互动功能的误解。即使回…

59.指向指针的指针(二级指针)

目录 一.什么是指向指针的指针 二.扩展 三.视频教程 一.什么是指向指针的指针 我们先看回顾一下指针&#xff1a; #include <stdio.h>int main(void) {int a 100;int *p &a;printf("*p is %d\n",*p);return 0;} 解析&#xff1a; 所以printf输出的结…

TCP/IP协议,三次握手,四次挥手

IP - 网际协议 IP 负责计算机之间的通信。 IP 负责在因特网上发送和接收数据包。 HTTP - 超文本传输协议 HTTP 负责 web 服务器与 web 浏览器之间的通信。 HTTP 用于从 web 客户端&#xff08;浏览器&#xff09;向 web 服务器发送请求&#xff0c;并从 web 服务器向 web …

Java 网站开发入门指南:如何用java写一个网站

Java 网站开发入门指南&#xff1a;如何用java写一个网站 Java 作为一门强大的编程语言&#xff0c;在网站开发领域也占据着重要地位。虽然现在 Python、JavaScript 等语言在网站开发中越来越流行&#xff0c;但 Java 凭借其稳定性、可扩展性和丰富的生态系统&#xff0c;仍然…

【CS.AL】算法必学之贪心算法:从入门到进阶 —— 关键概念和代码示例

文章目录 1. 概述2. 适用场景3. 设计步骤4. 优缺点5. 典型应用6. 题目和代码示例6.1 简单题目&#xff1a;找零问题6.2 中等题目&#xff1a;区间调度问题6.3 困难题目&#xff1a;分数背包问题 7. 题目和思路表格8. 总结References 1000.1.CS.AL.1.4-核心-GreedyAlgorithm-Cre…

李永乐线代笔记

线性方程组 解方程组的变换就是矩阵初等行变换 三秩相等 方程组系数矩阵的行秩列秩&#xff0c;线性相关的问题应求列秩&#xff0c;但求行秩方便 齐次线性方程组 对应向量组的线性相关&#xff0c;所以回顾下线性相关的知识&#xff1a; 其中k是x&#xff0c;所以用向…