首页 > 数据库 >【数据科学】pandas数据库中的serise

【数据科学】pandas数据库中的serise

时间:2024-07-23 20:28:57浏览次数:11  
标签:index serise series 数据库 pandas pd Series 我们

引言

上一篇关于数据科学入门的文章,我们聊到了关于numpy数据库的使用(主要是array和mat两种的创建和使用),那么今天我们就来讲讲pandas这个数据库吧(从serise的角度出发)。

怎么下载pandas数据库

我们想要用到series的时候,我们就要先去调用pandas这个数据库,和numpy这个数据库一样,我们想要使用pandas就得先去把这个数据库下载下来,我们在cmd里面去编译下面这一行代码

pip install pandas

就可以顺利地把pandas这个数据库download下来了。

出现上面这个画面的时候也就意味着你已经成功地把pandas这个数据库安装下来了。

我们开始使用jupyter notebook进行编译。 

正文

导入

万里长征的第一步:导入数据库!!!

创建series

通过下面这个格式,我们就能够创建出我们第一个series的数据啦

创建series一共有四种方式

  1. 基本形式:pd.Series([data])
  2. 使用切片的形式:pd.Series(np.arange(X,Y,Z))
  3. 使用字典的形式:pd.Series({'index':data})
  4. 使用index和data分离的形式:pd.Series([1,2,3,4],index=['a','b','c','d'])

1.基本形式 

pd.Series([data])
data为数字,数字,数字的形式出现

 

PS:这里要格外注意,Series里面第一个S一定要大写,否则系统就要像下面一样报错

series和一般的数据不同的地方就在于它会有一个index,看到上面的编译结果,你应该也能发现了,上面的编译结果中第一列代码为index(就是python里面的索引),这里的index是从0开始的,第二列就是我们所input的值了,不信的话,我们可以使用下面两行代码试试

s1.index
si.values

结果也和我们所想的是一样的。

2.切片

接下来,和之前讲的numpy数据库一样,我们讲讲切片,这里我们先上代码

这里可能有同学会有疑惑了,怎么这里的参数变成一个啦,这还怎么做啊

来,我们看看arange的用法:

  • 一个参数时,参数值为终点值,起点取默认值0,步长取默认值1。
  • 两个参数时,第一个参数为起点值,第二个参数为终点,步长取默认值1。
  • 三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长,其中步长支持小数。

那我们上面的就是从0开始数到10为止(10不计入我们的计算范围

3.使用字典的形式创建Series

如下面的创建形式

pd.Series({'index':data})

编译结果如下:

4.index和data分开

pd.Series([1,2,3,4],index=['a','b','c','d'])

编译结果如下: 

 

以上便是在pandas数据库中创建series的几种方法了,如有什么问题,可以随时联系博主的喔。

关于索引

透过索引查找values

我们用下面的代码可以用我们所命名的索引来查看我们的数据

sX['Y']

我们用s3和s4来验证一下我们的想法

但是这里要格外注意的是如果是系统帮我们去创建的index,我们是无法透过索引去查找我们的data的,譬如我们的s1和s2这两个数据

通过我们的编译结果,我们就可以清楚地看到了以系统自动创建index(索引)的方式是不可以用索引去查找数据的。

截取series

同时如果我们不想要全部数据,就只想要一部分的数据,我们可以通过限制values的大小来实现,譬如在我们刚刚创建的s4里面,我们就可以通过让values的值大于2来实现series中特定数据的截取,使用下面的这个格式即可

s4[s4>2]

编译结果如下,我们可以看到它已经按照我们的要求去对series进行部分的截取了

和字典的转换

series和字典有一个非常明显的相同点,那便是他们都有着index(索引),在第三种series的创建方式中,我们就是利用字典向series的转换来实现的,那么我们可不可以把我们创建出来的series去转成字典呢,答案是可以的,我们透过下面这一行代码就可以实现了

s3.to_dict()

我们分别用s1,s2,s3,s4跑一下看看他们各自的编译结果

结果也和我们所设想的是一样的

既然我们创建出来了一个透过这种方式创建出来了字典,那我们能不能再把创建出来的字典转回去series

答案是当然可以啦,那我们不妨试试看

我们通过下面这行代码转换回去

s5=pd.Series(s4.to_dict())

它的运行结果是

可以看到s5和s4是一样的,因为s5是让s4转到字典后再转来series的,就相当于围着操场跑了一圈,最后还是回到了原点的位置。

基本知识

关于NaN

有的同学再实际操作的时候反馈说,为什么values里面出现了NaN这一个东西,那我们今天来展示一下他的代码

index_1={'a','b','c','d','e'}
s6=pd.Series(s5,index=index_1)

这里透过代码,我们可以看到这位同学是把里面的索引再加了一个,我们再回看一下s5的数据

我们再把刚刚同学的代码跑一下

我们可以看到e这里因为没有填充数据,所以它这里为NaN,此外我们还试了一下其他的错误

判断是否为空和非空

我们在这里把s5里面的index变成了我们的index,最后就让每一个数都变成了NaN,因此我们在编译的时候要格外注意原先数据的index的一致性其实这个NaN和我们之前认识的null是一个东西,所以我们可以用pd.isnull()来判断每个values是否为空

演示如下

同理,notnull这一个格式就是刚好相反啦

当然,这里的数据类型都是布尔类型啦

关于series的命名和index的命名

在这里,我们把s6命名为kobe,我们使用下面的语法

s6.name='kobe'

如果我们是想去对其index进行命名,我们只需要在s6和name之间在加一个index就可以啦

s6.index.name='forever8&24'

series的知识我们就讲到这里,而pandas里面会有一个非常重要的dataframe,接下来博主也会跟大家聊聊,那不妨关注一下博主和【数据科学】这一个专栏吧

标签:index,serise,series,数据库,pandas,pd,Series,我们
From: https://blog.csdn.net/2301_79740539/article/details/140526684

相关文章

  • MySQL数据库-基础篇
    一、MySQL概述cmd中输入services.msc可进入到系统服务中启动服务netstartmysql80停止服务netstopmysql80客户端连接mysql[-h127.0.0.1][-p3306]-uroot-ppassword[]中内容可省略,默认连接本机3306端口,前提是配置了环境变量,cmd中即可连接数据模型......
  • 面试题:如何解决缓存和数据库的一致性问题?
    所谓的一致性问题是指,在同时使用缓存和数据库的情况下,要确保数据在缓存与数据库中的更新操作保持同步。也就是当对数据进行修改时,无论是先修改缓存还是先修改数据库,最终都要保证两者的数据是一样的,不会出现数据不一样的问题。1.一致性问题解决方案缓存和数据库一致性的经典解决......
  • pandas数据处理几个数据合并方法的区别
     以下是在Python中的Pandas中进行合并、连接和连接的不同方式和方法:PythonPandas中的DataFrameconcat()concat() 函数负责执行沿轴的连接操作的所有繁重工作,同时对其他轴上的索引(如果有)执行可选的集合逻辑(并集或交集)。在此示例中,创建了三个具有相同的列但不同索引的DataFr......
  • 优化循环操作数据库批量处理数据mybatis plus
    优化循环操作数据库批量处理数据mybatisplus大家好我是小星,今天在技术交流群里看见有人在循环中修改数据库,觉得不太好在此总结几种批量修改数据库的方法未优化前代码:for(inti=0;i<pojolist.size();i++){Pojopojo=pojolist.get(i);pojo.setAge(1);m......
  • [转]从SQLite到Redis:探索C++与多种数据库的交互之道
    转自:【C++风云录】从SQLite到Redis:探索C++与多种数据库的交互之道开启数据库之旅:通过C++与各种数据库交互,事半功倍1.SQLite1.1简介SQLite是一个嵌入式关系型数据库管理系统,提供了一个轻量级的C++接口。它是一个开源的软件库,无需配置服务器或安装管理工具,可以直接在程序中使......
  • 【YashanDB知识库】yac修改参数后关闭数据库hang住
    【标题】yac修改参数后关闭数据库hang住【问题分类】性能优化【关键词】YashanDB,yac,shutdownhang【问题描述】修改yac参数后执行shutdownimmediate,数据库hang住。【问题原因分析】Shutdown操作时,线程在获取gInstance->trigger->sema信号量时卡住。该信号量应由mai......
  • 每次测试后自动清理 postgres 数据库
    我有与postgres数据库对话的sqlalchemy应用程序。我想使用测试容器进行一些“集成测试”并尝试各种场景。只是为了让事情变得简单,假设在我的应用程序中我只期望一个表users至少包含admin行。我希望这在所有测试中可用。这就像我的数据库状态......
  • MySQL 数据库的设计规范
    Author:ACatSmilingSince:2024-07-23为什么需要数据库设计我们在设计数据表的时候,要考虑很多问题。比如:用户都需要什么数据?需要在数据表中保存哪些数据?如何保证数据表中数据的正确性?当插入、删除、更新的时候该进行怎样的约束检查?如何降低数据表的数据冗余度,保证数据表不......
  • 迁移apollo数据库之后部署apollo
    version:'3'services:apollo-configservice:image:apolloconfig/apollo-configservice:2.2.0container_name:apollo-configservicerestart:alwaysnetwork_mode:hostenvironment:-SPRING_DATASOURCE_URL=jdbc:mysql://xxx......
  • pandas 读取 SQL 表会引发 NotImplementedError
    有人可以帮忙照顾熊猫吗?我无法读取sqlite3表。这是我的代码:importpandasaspdimportsqlite3assqwithsq.connect("master.db")ascon:table="personal"df=pd.read_sql_table(table,con)数据库文件和代码位于同一目录中。Python引发No......