display属性_Series(一):Series的创建方式和常用属性说明

f57cb1712fab8b9675eeb2ac64764413.png 作者丨黄伟呢  来源丨凹凸数据 大家好,我是黄同学 smiley_4.png 今天给大家介绍Series的创建方式和常用属性说明。

1、list、ndarray、Series的简单比较

① list列表,列表中的元素可以是不同的数据类型,使用从0开始的整数值作为默认索引; ② ndarray数组,数组中的元素必须是同种数据类型,也是使用从0开始的整数值作为默认索引; ③ Series序列,是一种一维的结构,类似于一维列表和ndarray中的一维数组,但是功能比他们要更为强大,Series由两部分组成:索引index和数值values; ④ 一维列表和一维数组中都是采用从0开始的整数值作为默认索引,索引值一般不显示的给出,但是我们可以通过索引去获取其中的元素。对于Series来说,默认索引也是从0开始的整数值作为默认索引,但是是显示地给出,更为强大的是,Series中的索引可以随意设置,方便我们取数。 操作如下:
 import numpy as npimport pandas as pd
l1 = [1,2,"中国",4.5]
display(l1)
display(l1[2])
a1 = np.array([1,2,5,6,8])
display(a1)
display(a1[4])
s1 = pd.Series([1,3,5,7,9])
display(s1)
display(s1[4])
s2 = pd.Series([1,3,5,7,9],index=["a","b","c","d","e"])
display(s2)
display(s2["d"])
display(s2[3])
s3 = pd.Series([1,3,5,7,9],index=[3,4,5,6,7])
display(s3)
display(s3[6])
结果如下: acf041ebddf6fffe07b9bc1119c8aed5.png 通过上述测试,我们可以总结出来这第5条结论: ⑤ 创建Series序列时,当不指定索引的时候,默认会生成从0开始的整数索引;当指定了“字符串索引”(也叫“标签索引”),既可以通过这个字符串索引访问元素,也可以通过原有的从0开始的整数索引访问元素;当指定一个“整数索引”,那么该索引会覆盖掉原有的默认的整数索引,只能通过这个新的整数索引访问元素,默认的整数索引会失效。

2、Series的5种常用创建方式

  • 语法:创建Series的语法:pd.Series()
  • 常用参数:index,用于指定新的索引;dtype,用于指定元素的数据类型;
  • 大前提:要记住Series是一个一维的结构!!!
  • 注意:当你指定了索引,系统会使用这个指定索引;当你没有指定索引,系统会默认给我们创建索引。
1)通过一维列表创建Series
x = [1,3,5,7,9]
y = pd.Series(x)
display(y)
y1 = pd.Series(x,index=["a","b","c","d","e"],dtype=np.float32)
display(y1)
结果如下: eb728f69a7839ff6065449e7f5133394.png 2)通过可迭代对象创建Series
x = range(2,7)
y = pd.Series(x)
display(y)
结果如下: 1f58eb889d59f6fa110934fa702dd3ff.png 3)通过字典创建Series
x = dict(a=22,b=18,c=35)
y = pd.Series(x)
display(y)
x1 = pd.Series({"a":1,"b":2,"c":3})
display(x1)
结果如下: 828e0c5af24297d37095db0bd092909a.png 4)通过一维数组创建Series
x = np.arange(1,6)
y = pd.Series(x)
display(y)
结果如下: 7577a716f04d9c2bd810cc2933c36ea5.png 5)通过标量(常数)创建Series
x = 22
y1 = pd.Series(x)
display(y1)
y2 = pd.Series(x,index=list(range(5)))
display(y2)
结果如下: bb6aaae64068c751ea5305da3866904c.png 注意:创建一个含有相同元素的Series,元素的个数取决于我们设置的索引的个数。

3、Series中常用属性说明

1)Series和ndarray中常用属性对比
 * ndim          返回Series的维数;
* shape 返回Series的形状;
* dtype 返回Series中元素的数据类型;
* size 返回Series中元素的个数;
* itemsize 返回Series中每一个元素占用空间的大小,
以字节为单位;
* nbytes 返回Series中所有元素占用空间的大小,
以字节为单位;
* T 返回Series的转置结果;#注意:下面这3个属性,在Series中才有。
* index 返回Series中的索引;
* values 返回Series中的数值;
* name 返回Series的名称 或 返回Series索引的名称;
* ndim          返回数组的维数;
* shape 返回数组的形状;
* dtype 返回数组元素的数据类型;
* size 返回数组中元素的个数;
* itemsize 返回数组中每一个元素占用空间的大小,以字节为单位;
* nbytes 返回数组中所有元素占用空间的大小,以字节为单位;
* T 返回数组元素的转置结果;
操作如下:
s = pd.Series([1,3,5,7,9])
display(s)
display(s.ndim)
display(s.shape)
display(s.dtype)
display(s.size)
display(s.itemsize)
display(s.nbytes)
display(s.T)
结果如下: 1ef4f546702e393abccb75bce517b6c3.png 注意: ① 由于Series是一维的结构,因此Series的ndim的值肯定是1; ② 关于itemsize还有nbytes的具体用法,可以参考之前的一篇文章去了解 《手撕numpy(二):各种特性和简单操作》 2)Series中特有的几个属性:index、values、name ① index和values属性
x = pd.Series([1,3,5,7,9])
display(x)
display(x.index)
display(x.values)
结果如下: 1c0eb413601277d8e7ab4688ada384ec.png ② name属性:动态创建Serie名称和Series索引名称
x = pd.Series([1,3,5,7,9])
display(x)
x.name = "Series的名称"
x.index.name= "Series索引的名称"
display(x)
display(x.name)
display(x.index.name)
结果如下: 80dfedb6c6a598e715fe4163edcbf502.png ③ 在创建Series的时候,指定Series名称
y = pd.Series([1,3,5,7,9],index=["a","b","c","d","e"],name="Series的名称")
display(y)
display(y.index.name)
display(y.name)
结果如下: 34d278b89df57af15eb01c045069460c.png 注意:目前可能看不出来,指定这个索引名称的好处在哪里,这个在学习DataFrame的时候,会得到很好的体现。 如果多个series放在了一起,那么必然可以构建成一个dataframe,那么每个series的名称就是构成当前这个dataframe的column。(仔细先体会这段话) 下面,我们先用一个简单的例子,说明一下Serie名称的作用。 97d6baa8e6383cbdfe35d6ed2d354d03.png 从上图中可以看出,In[6]我们先创建了一个dataframe,这个dataframe可以看作是由三个Series堆积而成的。In[8]我们选取了其中一列,那么得到的就是一个Series,  In[9]我们获取这个Series的name,可以看出结果就是该列的column列名。

8512f7664f59b9466e0a3ebda1c2d333.png

近期精彩内容推荐:  

36bc7568090dea04f509557a70bc6630.png 公务员和程序员,你会选哪个呢?

36bc7568090dea04f509557a70bc6630.png 复工期来临,腾讯员工晒的照片引网友关注

36bc7568090dea04f509557a70bc6630.png 技术总监:求求你别写这么多if...else..了

36bc7568090dea04f509557a70bc6630.png 装X黑客指南:如何在小白面前秀一手

a0826fd5682623840f551db6ea60df87.png

066abad2fb4dd5c6887e41020a2e329a.png

在看点这里748a9767e26f868b1b43ce4bb58b4233.png好文分享给更多人↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值