python的pandas库

什么是pandas

Pandas是一个开源的第三方Python库,它从Numpy和Matplotlib的基础上构建而来,享有数据分析“三剑客之一”的盛名。Pandas已经成为Python数据分析的必备高级工具,目标是成为强大、灵活、可以支持任何编程语言的数据分析工具。

数据结构

Pandas中除了Panel数据结构,还引入了两种新的数据结构——Series和DataFrame,这两种数据结构都建立在NumPy的基础之上。

(1)Series:一维数组系列,也称序列,与Numpy中的一维array类似。二者与Python基本的数据结构list也很相近。

(2)DataFrame:二维的表格型数据结构。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。、

(3)Panel:三维数组,可以理解为DataFrame的容器。

数据类型

Logical(逻辑型)

Logical又叫布尔型,只有两种取值:0和1,或者真和假(True和False)。逻辑运算符有:& (与,两个逻辑型数据中,有一个为假,则结果为假) , | (或,两个逻辑型数据中,有一个为真,则结果为真) ,not(非,取反)。

Numeric(数值型)

数值运算符有:+ -*和/。

Character(字符型)

字符型数据一般使用单引号(' ' )或者双引号(" ")包起来。

Python数据类型变量命名规则如下:

(1)变量名可以由a~z A~Z,数字,下划线组成,首字母不能是数字和下划线;

(2)大小写敏感,即区分大小写;

(3)变量名不能为Python中的保留字,如and continue lambda or等。

数据结构

数据结构是指相互之间存在的一种或多种特定关系的数据类型的集合。Pandas中主要有Series(系列)和Dataframe(数据框)两种数据结构。、

Series

Series(系列,也称序列)用于存储一行或一列的数据,以及与之相关的索引的集合。

from pandas import Series
x=Series(['a',2,'狗狗'],index=['a','b','c'])
print(x)
print(x['a'])
a     a
b     2
c    狗狗
dtype: object
a

Series的index如果省略,索引号默认从0开始,也可以指定索引名。

为了方便后面的使用和说明,此处定义可以省略的index,也就是默认的索引号从0开始计数,赋值给定的index,我们称为索引名,有时也称为行标签。

补充:

dtype:object为列中的数据类型

数值类型:
int64:64位整数。
float64:64位浮点数。
int32, int16, int8:不同位数的整数,根据数据的大小和内存使用情况来选择。
float32:32位浮点数。
时间类型:
datetime64[ns]:用于存储日期和时间的数据类型,精度为纳秒。
timedelta[ns]:用于存储时间间隔的数据类型,同样精度为纳秒。
文本类型:
str:用于存储字符串数据。
类别类型:
categorical:用于存储分类数据的数据类型,可以有效地减少存储空间并提高性能。
稀疏类型:
sparse:用于存储包含很多零值的稀疏数据,可以减少存储空间。
其他:
bool:布尔类型,用于存储真/假值

当Pandas无法确定列中所有元素的共同数据类型时,它通常会默认将列的数据类型设置为object

那这个与上面的数据类型是什么关系呢?

在Pandas中,dtype(数据类型)与逻辑型、数值型和字符型这些概念是密切相关的。dtype是Pandas用来表示数据列中元素类型的一个属性,而逻辑型、数值型和字符型是这些数据类型中的具体分类。

相关功能函数

from pandas import Series
import pandas as pd
#定义序列
x=Series(['a',True,1],index=['first','second','third'])
print(x)
#索引访问
print(x['second'])#索引名
#追加系列
n = Series(['2'], index=['fourth'])  # 追加时需要指定索引
x = pd.concat([x, n])
print(x)
#判断值,数字和逻辑值是不需要加引号
print(2 in x.values)
print('2' in x.values)
#切片
print(x.loc['second':'third'])  # 使用标签切片
#删除
x=x.drop("first")#索引名
print(x)
x=x[2!=x.values]
print(x)
first        a
second    True
third        1
dtype: object
True
first        a
second    True
third        1
fourth       2
dtype: object
False
True
second    True
third        1
dtype: object
second    True
third        1
fourth       2
dtype: object
second    True
third        1
fourth       2
dtype: object

Series的sort_index(ascending=True)方法可以对index进行排序操作,ascending参数用于控制升序或降序,默认为升序。也可使用reindex方法重新排序。在Series上调用reindex重排数据,使得它符合新的索引,如果索引的值不存在就引入缺失的数据值。

from pandas import Series
import pandas as pd
obj=Series([4.5,7.2,-5.3,3.6],index=['b','d','a','c'])
print(obj)
obj1=obj.reindex(['a','b','c','d','e'])
print(obj1)
obj2=obj.reindex(['a','b','c','d','e'],fill_value=0)
print(obj2)
b    4.5
d    7.2
a   -5.3
c    3.6
dtype: float64
a   -5.3
b    4.5
c    3.6
d    7.2
e    NaN
dtype: float64
a   -5.3
b    4.5
c    3.6
d    7.2
e    0.0
dtype: float64

相关的错误点

1:对于字符或字符串型的数据要记得加上引号

2:索引的长度不能超过index的长度不然会报错

3:在追加数据时不能追加单个元素,要追加系列

4:需要一个变量来承载变化,例如在追加时需要用变量接收,即返回的是一个新的序列

特点

1:Series是一种类似于一维数组的(numpy)的对象。

2:Series的数据类型没有限制。

3:Series有索引,把索引当做数据的标签看待,类似于字典。

4:Series同时具有数组和字典的功能。

DataFrame

DataFrame数据框是用于存储多行和多列的数据集合,是Series的容器,类似于Excel的二维表格。

对于DataFrame的操作无外乎'增,删,改,查'。DataFrame使用方法如下:

from pandas import DataFrame,Series
import pandas as pd
df = DataFrame({'age':Series([26,29,24]),'name':Series(['ken','jerry','ben'])},index=[0,1,2])
print(df)age   name
0   26    ken
1   29  jerry
2   24    ben

访问方式

访问列        变量名[列名]              访问对应的列。如df[name]

访问行        变量名[n:m]               访问n行到m-1行的数据。如df[2:3]访问n 1到(n 2-1)行,m 1到(m 2-1)列的数据。

访问块(行和列)     变量名. iloc[n 1:n 2,m 1:m 2]     如df . iloc[0:3,0:2]

访问指定的位置     变量名.at[行名,列名]     访问(行名,列名)位置的数据。如df . at[1,'name']

from pandas import DataFrame,Series
import pandas as pd
df = DataFrame({'age':Series([26,29,24]),'name':Series(['ken','jerry','ben'])},index=[0,1,2])
print(df)
a=df['age']
print(a)
b=df[1:2]
print(b)
c=df.iloc[0:2,0:2]
print(c)
d=df.at[0,'name']
print(d)age   name
0   26    ken
1   29  jerry
2   24    ben
0    26
1    29
2    24
Name: age, dtype: int64age   name
1   29  jerryage   name
0   26    ken
1   29  jerry
ken

功能函数

from pandas import DataFrame,Series
import pandas as pd
df = DataFrame({'age':Series([26,29,24]),'name':Series(['ken','jerry','ben'])},index=[0,1,2])
df.columns=['age1','name1']#修改列名
print(df)
df.index=range(1,4)#修改索引
print(df.index)
df=df.drop(1,axis=0)#行索引删除,axis=0表示行轴
print(df)
df=df.drop('age1',axis=1)#列名删除
print(df)
#删除列del df['age1']
df['newColumn']=[2,4]#增加列
print(df)
df.loc[len(df)]=['keno',24]#增加行
print(df)
print(len(df))age1  name1
0    26    ken
1    29  jerry
2    24    ben
RangeIndex(start=1, stop=4, step=1)age1  name1
2    29  jerry
3    24    benname1
2  jerry
3    benname1  newColumn
2  jerry          2
3    ben          4name1  newColumn
2  keno         24
3   ben          4
2
合并DataFrame
from pandas import DataFrame, Series
import pandas as pddf1 = DataFrame({'A': Series([1, 3]),'B': Series([2, 4])
}, index=[0, 1])print(df1)df2 = DataFrame({'A': Series([5, 7]),'B': Series([6, 8])
}, index=[0, 1])print(df2)# 只叠加数据,但保留原始索引
df_appended_with_index = df1.append(df2)
print(df_appended_with_index)# 合并为一个新的数据框,并忽略原始索引,创建新的整数索引
df_appended_ignore_index = df1.append(df2, ignore_index=True)
print(df_appended_ignore_index)

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

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

相关文章

JVM (Micrometer)监控SpringBoot(AWS EKS版)

问题 怎样使用JVM (Micrometer)面板&#xff0c;监控Spring&#xff1f;这里不涉及Prometheus和Grafana&#xff0c;重点介绍与Micrometer与Springboot&#xff0c;k8s怎样集成。 pom.xml 引入依赖&#xff0c;如下&#xff1a; <properties><micrometer.version&…

手写一个民用Tomcat (07)

继续我们的Tomcat &#xff0c;我们完成了 参数封装成map&#xff0c;下面我们处理&#xff0c;Cookie 和session 我们先引入两个类Session&#xff0c;和SessionFacade&#xff08;也是门面模式&#xff09; public class JxdSession implements HttpSession {private Strin…

免费简单好用的内网穿透工具(ngrok、natapp),微信回调地址配置

B站视频地址 文章目录 Natapp1、登录注册账号、下载软件2、使用2-1、购买隧道、查看token2-2、端口穿透 Ngrok1、登录注册账号、下载软件2、使用2-1、获取并设置 token2-2、使用 3、隧道 微信回调配置1、注册测试公众号2、回调代码3、回调配置 在一些特殊的场景下&#xff0c;需…

【模型渲染】前端如何让glb模型转3dtiles

发现了一个新插件&#xff0c;3D Tiles Tools&#xff0c;CesiumGS 出品&#xff0c;新鲜热乎&#xff08;当前写这篇文章的时候&#xff0c;版本是v 0.4.1&#xff09;&#xff0c;所以&#xff0c;有些功能还不够使用。这里是我当前版本发现的问题&#xff0c;例如&#xff1…

多种方法求1+12+123+1234……

有网友出了一道题&#xff1a; 从键盘输入一个小于10的正整数n&#xff0c;计算1121231234……&#xff0c;即前n项之和。 第一眼看到题目&#xff0c;直觉告诉我必须使用嵌套的两个for循环&#xff0c;里面的循环生成每一项&#xff0c;外面的循环求和。错误的方向和思路让我…

基于RBF-PID控制器的风力发电系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于RBF-PID控制器的风力发电系统simulink建模与仿真,对比PID控制器和RBF-PID控制器的控制结果。 2.系统仿真结果 3.核心程序与模型 版本&#xff1a;MATLAB2022a 0050 4.系…

数据结构中的串(String):概念、操作和实际应用

目录 一.引言 二.串的定义 三. 串的抽象数据类型&#xff08;ADT&#xff09; 四. 串的存储结构 顺序存储结构 链式存储结构 五. 串模式的存储算法 KMP算法&#xff08;Knuth-Morris-Pratt算法&#xff09; 2.Brute-Force&#xff08;暴力匹配&#xff09;算法 3.Boy…

Unity进阶之ScriptableObject

目录 ScriptableObject 概述ScriptableObject数据文件的创建数据文件的使用非持久数据让其真正意义上的持久ScriptableObject的应用配置数据复用数据数据带来的多态行为单例模式化的获取数据 ScriptableObject 概述 ScriptableObject是什么 ScriptableObject是Unity提供的一个…

有没有电脑桌面监控软件|十大电脑屏幕监控软件超全盘点!

电脑桌面监控软件已经成为许多领域不可或缺的工具。 无论是企业为了保障数据安全和提高工作效率&#xff0c;还是家长为了监督孩子的学习&#xff0c;甚至是个人为了记录电脑使用行为&#xff0c;都需要这类软件的支持。 本文将对市面上十大电脑屏幕监控软件进行超全盘点&…

智能文案生成器,文案生成改写很强大

在当今数字化时代&#xff0c;随着人工智能的迅猛发展&#xff0c;智能文案生成器正逐渐成为营销和创作领域的一大利器。这些智能工具不仅能够快速生成文案&#xff0c;还能够进行文案改写&#xff0c;使得文案生成的过程更加高效、便捷。正是在这样的背景下&#xff0c;智能文…

CAT:contig稳健物种分类

安装 mamba create -n CAT python3.10 diamond prodigal cd SoftWare git clone https://github.com/MGXlab/CAT_pack chmod 755 给权限 自己构建数据库 names.dmp nodes.dmp文件可以在Kraken2的文件里面找到 Kraken2Bracken&#xff1a;宏基因组物种注释_kracken2配合bracke…

MySQL之binlog归档日志

binlog&#xff08;二进制归档日志&#xff09; binlog 二进制日志记录保存所有执行过的修改操作语句&#xff0c;不保存查询操作。如果 MySQL 服务意外停止&#xff0c;可通过二进制日志文件排查&#xff0c;用户操作或表结构操作&#xff0c;从而来恢复数据库数据。启动 bin…

Java 线程的几种状态

一、 线程的状态 状态是针对当前的线程调度的情况来描述的。因为线程是调度的基本单位&#xff0c;所以状态更应该是线程的属性。在Java中线程的状态一共有六种&#xff1a; 1. 初始(NEW)&#xff1a;新创建了一个线程对象&#xff0c;但还没有调用start()方法。 2. 运行(RUNN…

动静态库以及动态链接

文章目录 静态库制作静态库如何使用静态库 动态库动态库的制作动态库的使用动态链接 库是给别人用的&#xff0c;所以库中一定不存在main函数。库一般会有lib前缀和后缀&#xff0c;去掉前缀和后缀才是库名。 静态库 静态库&#xff08;.a&#xff09;&#xff1a;程序在编译…

C++|对象与const

目录 常对象 常对象的声明 性质 数据成员不能被修改 常对象不能调用非const成员函数 const型成员函数 常对象成员 常数据成员 常成员函数 注意 总结 const型数据成员 const型成员函数 常对象 指针与const 指向对象的常指针 应用场景 指向常对象的指针 指向常…

Swagger3.0(Springdoc)日常使用记录

文章目录 前言一、默认地址二、注解OperationTag 三、SpringBoot基础配置四、Swagger导入apifox五、Swagger其他配置六 knife4j 参考文章 前言 本文并不是Swagger的使用教程&#xff0c;只是记录一下本人的操作&#xff0c;感兴趣的可以看下 一、默认地址 http://localhost:…

【1731】jsp 房租跟踪监控管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 房租跟踪监控管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

Java 基础常见面试题整理

目录 1、java的基本数据类型有哪些&#xff1f;2、java为什么要有包装类型&#xff1f;3、String a "123" 和 String a new String("123") 区别&#xff1f;4、String、StringBuilder和StringBuffer的区别&#xff1f;5、如何理解面向对象和面向过程&…

浅谈叉车车载电脑的市场现状

叉车的起源 叉车源于美国&#xff0c;兴于日本&#xff0c;虽然中国起步较晚&#xff0c;但是近些年来发展迅速。叉车又称叉式装载车&#xff0c;是对于成件托盘类货物进行装卸、堆垛和短距离运输&#xff0c;实现重物搬运作业的轮式工业车辆。 叉车的分类 叉车分为以上六大类…

CSS学习(选择器、盒子模型)

1、CSS了解 CSS&#xff1a;层叠样式表&#xff0c;一种标记语言&#xff0c;用于给HTML结构设置样式。 样式&#xff1a;文字大小、背景颜色等 p标签内不能嵌套标题标签。 px是相对于分辨率而言的&#xff0c; em是相对于浏览器的默认字体&#xff0c; rem是相对于HTML根元…