Pandas库:从入门到应用(一)

news2025/1/24 7:24:51

一、Pandas简介

在这里插入图片描述

  • pandas是 Python 的核⼼数据分析⽀持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。pandas是Python进⾏数据分析的必备⾼级⼯具。

  • pandas的主要数据结构是 **Series(**⼀维数据)与 DataFrame (⼆维数据),这两种数据结构⾜以处理⾦融、统计、社会科学、⼯程等领域⾥的⼤多数案例

  • 处理数据⼀般分为⼏个阶段:数据整理与清洗、数据分析与建模、数据可视化与制表,Pandas 是处理数据的理想⼯具

二、Pandas 安装验证

2.1、本地wendows或linux直接pip安装
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

2.2、登入python验证
import pandas as pd ## 没有报错说明pandas安装成功

在这里插入图片描述

三、Pandas 的数据结构

3.1、Series

Series对象用来表示一维数据结构 ,和常规的数组类型,但是Series的内部结构是包含了两个数组

一个是用来保存数据(data),一个是用来保存数据的索引(index)

pandas.Series( data, index, dtype, name, copy)

参数说明:

  • data:一组数据(ndarray 类型)。
  • index:数据索引标签,如果不指定,默认从 0 开始。
  • dtype:数据类型,默认会自己判断。
  • name:设置名称。
  • copy:拷贝数据,默认为 False。
pd.Series(data=['北京','上海','广州','深圳'],index=[1,2,3,4],dtype='str',name='中国一线城市') 

在这里插入图片描述

如果不指定索引(index)会自动从0开始
在这里插入图片描述

3.2、DataFrame
  • DataFrame 是一个二维数组的数据结构,类似Excel、sql表。

  • DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

pandas.DataFrame( data, index, columns, dtype, copy)

参数说明:

  • data:一组数据(ndarray、series, map, lists, dict 等类型)。
  • index:索引值,或者可以称为行标签。
  • columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
  • dtype:数据类型。
  • copy:拷贝数据,默认为 False。
df1 = pd.DataFrame(data = np.random.randint(0,151,size=(3,3)), #
                    index = ['张三','李四','王五'], # ⾏索引
                    columns= ['python','math','english']
                   )

在这里插入图片描述

四、DataFrame的常用属性

4.1、head()函数

显示头部数据,默认显示头部5行数据

import numpy as np
import pandas as pd
df1 = pd.DataFrame(data = np.random.randint(0,151,size=(10,3)), 
                    columns= ['python','math','english']
                   )
df1.head(7) ##显示前7行数据

在这里插入图片描述

4.2、tail()函数

显示尾部数据,默认显示尾部5行数据

df1.tail(5)

在这里插入图片描述

4.3、shape 函数

显示DataFrame数据结构的行数和列数

df1.shape ## (10, 3)
4.4、dtypes 函数

显示各列的数据类型

df1.dtypes

在这里插入图片描述

4.5、index 函数

显示DataFrame数据的行索引,及索引类型

import numpy as np
import pandas as pd
df1 = pd.DataFrame(data = np.random.randint(0,151,size=(10,3)), #
                    index=['张三','大华','小明','李四','小丽','小军','王五','木木','明明','小六子'],
                    columns= ['python','math','english']
                   )
df1.index

在这里插入图片描述

4.6、columns 函数

显示DataFrame数据的列索引,及索引类型

df1.columns

在这里插入图片描述

4.7、values 函数

显示DataFrame数据的二维ndarray数组

df1.values

在这里插入图片描述

4.8、describe() 函数

查看数值型列的汇总统计,计数、平均值、标准差、最⼩值、四分位数、最⼤值

df1.describe()

在这里插入图片描述

4.9、info() 函数

查看列索引、数据类型、⾮空计数和内存信息

df1.info()

在这里插入图片描述

五、Pandas 数据输入与输出

5.1、操作csv文件
5.1.1、写入csv文件
import numpy as np
import pandas as pd
df1 = pd.DataFrame(data = np.random.randint(0,151,size=(10,3)), #
                    index=['张三','大华','小明','李四','小丽','小军','王五','木木','明明','小六子'],
                    columns= ['python','math','english']
                   )

df1.to_csv('./score.csv',
           sep = ',', # ⽂本分隔符,默认是逗号
           header = True,# 是否保存列索引
           index = True, # 是否保存⾏索引,保存⾏索引,⽂件被加载时,默认⾏索引会作为⼀列
           index_label= '姓名')  # 设置index列的名称

在这里插入图片描述

5.1.2、读取csv文件
import numpy as np
import pandas as pd
pd.read_csv('./score.csv',
            sep = ',',# 默认是逗号
            header = [0],#指定列索引
            index_col=0) # 指定⾏索引

pd.read_table('./score.csv', # 和read_csv类似,读取限定分隔符的⽂本⽂件
              sep = ',',
              header = [0],#指定列索引
              index_col=0) # 指定⾏索引

在这里插入图片描述

5.2、操作Excel文件
5.2.1、下载Excel的包
pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install xlwt -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

5.2.2、写入Excel文件
import numpy as np
import pandas as pd
import xlrd
df1 = pd.DataFrame(data = np.random.randint(0,50,size = [50,5]), # 薪资情况
                   columns=['IT','化⼯','⽣物','教师','⼠兵'])
# 保存到当前路径下,⽂件命名是:salary.xls
df1.to_excel('./salary.xls',
             sheet_name = 'salary',# Excel中sheet⼯作表的名字
             header = True,# 是否保存列索引
             index = True,# 是否保存⾏索引
             index_label= '编号' # 设置index列的名称
             )

在这里插入图片描述

5.2.3、⼀个Excel⽂件中保存多个⼯作表
import numpy as np
import pandas as pd
import xlrd
import xlwt
import openpyxl
df1 = pd.DataFrame(data = np.random.randint(0,50,size = [50,5]), # 薪资情况
                   columns=['IT','化⼯','⽣物','教师','⼠兵'])
df2 = pd.DataFrame(data = np.random.randint(0,50,size = [150,3]),# 计算机科⽬的考试成绩
                   columns=['Python','Tensorflow','Keras'])

# ⼀个Excel⽂件中保存多个⼯作表
with pd.ExcelWriter('./data.xls') as writer:
    df1.to_excel(writer,sheet_name='salary',index = False)
    df2.to_excel(writer,sheet_name='score',index = False)

在这里插入图片描述

5.2.4、读取Excel文件
import numpy as np
import pandas as pd
import xlwt

pd.read_excel('./salary.xls',
              sheet_name=0,# 读取哪⼀个Excel中⼯作表,默认第⼀个
              header = 0,# 使⽤第⼀⾏数据作为列索引
              index_col=0)# 指定⾏索引,A作为⾏索引

在这里插入图片描述

pd.read_excel('./data.xls',
 sheet_name='salary') # 读取Excel中指定名字的⼯作表

在这里插入图片描述

5.3、操作HDF5文件
5.3.1、HDF5简介及安装
  • HDF5是⼀个独特的技术套件,可以管理⾮常⼤和复杂的数据收集。
  • HDF5可以存储不同类型数据的⽂件格式,后缀通常是.h5,它的结构是层次性的。
  • HDF5⽂件可以被看作是⼀个组包含了各类不同的数据集
pip install tables -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

5.3.2、HDF5架构

对于HDF5⽂件中的数据存储,有两个核⼼概念:group 和 dataset

dataset :代表数据集,⼀个⽂件当中可以存放不同种类的数据集,

group:最直观的理解,可以参考我们的⽂件管理系统,不同的⽂件位于不同的⽬录下,⽬录就是HDF5中的group

在这里插入图片描述

5.3.2、写入HDF5文件
import numpy as np
import pandas as pd

df1 = pd.DataFrame(data = np.random.randint(0,50,size = [50,5]), # 薪资情况
                   columns=['IT','化⼯','⽣物','教师','⼠兵'])
df2 = pd.DataFrame(data = np.random.randint(0,50,size = [150,3]),# 计算机科⽬的考试成绩
columns=['Python','Tensorflow','Keras'])
# 保存到当前路径下,⽂件命名是:data.h5
df1.to_hdf('./data.h5',key='salary') # 保存数据的key,标记
df2.to_hdf('./data.h5',key = 'score')

.h5文件没法直接打开,打开全都乱码了,但是还是看到有HDF的标识

在这里插入图片描述

5.3.3、读取HDF5文件
pd.read_hdf('./data.h5',key='score')

在这里插入图片描述

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

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

相关文章

搭建Samba服务器

搭建Samba服务器 文章目录搭建Samba服务器samba安装安装命令配置-ubuntu侧为samba服务器创建一个共享目录share创建使用该共享文件夹的账号修改samba服务器配置文件重启samba服务windows创建映射1.点击映射网络驱动器2.输入Ubuntu中的ip地址及其用户信息3.输入用户信息及其密码…

笔记 - Java 内存结构与模型

-- Java里内存结构与内存模型是两种概念 一、Java内存结构: HeapMemory - 堆内存Java Stacks - 栈内存 (运行时)Method Area - 方法区Native Method Stack - 本地方法栈 真实和系统打交道的地方Jit Compiler - 将java运行指令编译成机器指令G…

特斯拉、小鹏开路,城市NOA距好用还有几年?

作者 | Marshall 编辑 | 张祥威一项新技术,狂热的技术开发者往往会高估其发展速度,认为当下偶尔发生的安全问题,会随着数据积累和功能迭代被逐渐解决。 他们往往会说,“这个问题没有包含在我们的场景库中,但现在我们知…

C++ | 详细介绍缺省参数的作用

文章目录一、前言1、缺省参数概念2、缺省参数的使用规则二、全缺省参数【备胎是如何使用的♿】1、四种实参传递方式说明2、疑难细究三、半缺省参数【⭐】1、错误用法示范2、正确用法示范🔥实参缺省与形参缺省的混合辨析🔥3、小结四、缺省参数的实际应用 …

XILINX AXI总线学习

AXI介绍什么是AXI?AXI(高级可扩展接口),是ARM AMBA的一部分;AMBA:高级微控制器总线架构;是1996年首次引入的一组微控制器总线;开放的片内互联的总线标准,能在多主机设计中实现多个控…

电子台账:模板制作之五——二级过滤与多条件组合

1 前言工作中,经常会遇到很复杂的数据,比如内销产品和出口产品、正常产品和报废产品都混在一块儿。电子台账中,需要把这些数据都区分开,分别汇总。这种情况,可以用台账软件的二级过滤功能来处理,实际上就是…

QML Popup详解

1.简介 弹出式用户界面控件,它可以与Window或ApplicationWindow一起使用,默认不可见。 常用属性介绍,一些公用的基础属性就不作介绍,可以查看我前面写的文章。 closePolicy : enumeration :此属性决定弹出窗口关闭的…

【Java基础】HashMap的底层数据结构是怎样的?

HashMap就是以Key-Value的方式进行数据存储的一种数据结构。 HashMap在jdk1.7之前和jdk1.8之后的底层数据结构是不一样的。 在jdk1.7之前是数组链表的形式,并通过entry节点保存key和value值;当Hash冲突比较严重的时候,在数组上形成的链表就会…

【ArcGIS学习记录02】--利用DEM数据提取河网溪流

【ArcGIS学习记录02】–利用DEM数据提取河网溪流 注:本文仅作为自己的学习记录以备以后复习查阅 不得不说这读个研究生可太不容易了,啥都得会点,这也得学那也得学,我的脑容量快要不够了。。。。。 一 数据准备(DEM数…

[数据结构]:14-选择排序(顺序表指针实现形式)(C语言实现)

目录 前言 已完成内容 选择排序实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 04-SortCommon.cpp 05-SortFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容,除其中使用到C引用外,全为C语言代…

使用Ubuntu中的Docker部署Remix

一、简介1.博主这里使用的是腾讯云的服务,然后使用Docker进行部署Remix。2.踩了几个坑,没有花费过多时间,所以这篇文章会记录踩过的坑。然后避免你们掉进去,然后花费过多时间。3.这里就不写怎么安装Docker了,因为博主上…

UML学习备忘录

UML学习备忘录 UML 全称是 Unified Modeling Language(统一建模语言),它以图形的方式来描述软件的概念。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。UML的本质就是为了交流。 UML的概念包括了UML语义(Se…

前端ES5对象特性

ES5对象特性 对象和函数的原型 JS中每一个对象都有一个特殊的内置属性,这个特殊的对象可以指向其他的对象 我们通过引用对象的属性key来获取一个value时,它会触发 Get 的操作首先检查该对象是否有对应的属性,如果有的话就使用对象内的如果…

Pytorch中utils.data 与torchvision简介

Pytorch中utils.data 与torchvision简介1 数据处理工具概述2 utils.data简介3 torchvision简介3.1 transforms3.2 ImageFolder1 数据处理工具概述 Pytorch涉及数据处理(数据装载、数据预处理、数据增强等)主要工具包及相互关系如下图所示,主…

文献阅读(48)—— 长序列time-series预测【Informer】

文献阅读(48)—— 长序列time-series预测【Informer】 文章目录文献阅读(48)—— 长序列time-series预测【Informer】先验知识/知识拓展文章结构文章方法1. 文章核心网络结构(1) 传统意义上的transformer应…

数据结构4——线性表3:线性表的链式结构

基本概念 ​ 链式存储结构用一组物理位置任意的存储单元来存放线性表的数据元素。 ​ 这组存储单元既可以是连续的又可以是不连续的甚至是零散分布在任意位置上的。所以链表中元素的逻辑次序和物理次序不一定相同。而正是因为这一点,所以我们要利用别的方法将这些…

Kafka消息中间件(Kafka与MQTT区别)

文章目录KafkaKafka重要原理Topic 主题Partition 分区Producer 生产者Consumer 消费者Broker 中间件Offset 偏移量Kafka与mqtt区别Kafka Kafka是一个分布式流处理平台,它可以快速地处理大量的数据流。Kafka的核心原理是基于发布/订阅模式的消息队列。Kafka允许多个…

C++基础——C++面向对象之重载与多态基础总结(函数重载、运算符重载、多态的使用)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》 长期持续带来更多案例与技术文章分享…

MySQL8.0.16存储过程比5.7.22性能大幅下降

MySQL8.0.16存储过程比5.7.22性能大幅下降 1、背景 从5.7.22迁移数据库到8.0.16,发现存储过程执行性能大幅下降。原来在5版本上执行只需要3-5秒,到8版本上居然要达到上万秒。 5版本: call Calculation_Week() OK 时间: 3.122s 8版本&#x…

移动通信(16)信号检测

常见的信号检测算法一般包括以下几类检测算法:最优、线性和非线性。最优检测算法:最大似然算法线性检测算法:迫零检测算法和最小均方误差检测算法非线性检测算法:串行干扰消除检测算法球形译码检测算法属于一种次优检测算法&#…