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

引言

上一篇关于数据科学入门的文章,我们聊到了关于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,接下来博主也会跟大家聊聊,那不妨关注一下博主和【数据科学】这一个专栏吧

  • 27
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值