前言
由于在公众号上文本字数太长可能会影响阅读体验,因此过于长的文章,我会使用"[L1]"来进行分段。这系列将介绍Pandas模块中的Series,本文主要介绍:
Series是一种类似于一维数组的对象,与一维数组对象不同的是Series带有标签(索引),通俗来说就是一维带标签(索引)的一维数组。如下图所示:
▲带有索引的一维数组
Series是一维带标签(索引)的一维数组,对于Series最关键的也就是索引index和与之对应的value值。
一般格式 (这里的data就是value值的集合):
s = pd.Series( data , index )
data几种常见的取值类型:
index取值规范:
下面依照着data的几种常见的类型来分别介绍,中间会穿插着index的取值规范问题:
data为标量值、list列表
#data:标量值1
#index:不指定(默认索引)
import pandas as pd
s = pd.Series(1)
print(s)
result:
0 1
dtype: int64
#data:list列表
#index:通过list列表指定,其中data和index长度一致
import pandas as pd
s = pd.Series([1,2,3,4,5],index = ["a","a","c","d","e"])
print(s)
result:
a 1
a 2
c 3
d 4
e 5
dtype: int64
注意:
data为ndarray对象
import numpy as np
import pandas as pd
data = np.arange(5)
#使用list作为index索引
index2 = ["a","b","c","d","e"]
#使用ndarray数组作为index索引
index3 = np.array(["a","b","c","d","e"])
s = pd.Series(data)
s2 = pd.Series(data,index2)
s3 = pd.Series(data,index3)
print(s)
print("-"*6)
print(s2)
print("-"*6)
print(s3)
result:
0 0
1 1
2 2
3 3
4 4
dtype: int32
------
a 0
b 1
c 2
d 3
e 4
dtype: int32
------
a 0
b 1
c 2
d 3
e 4
dtype: int32
注意:
data为dict字典
import pandas as pd
d = {"a":0,"b":1,"c":2}
s = pd.Series(d)
print(s)
result:
a 0
b 1
c 2
dtype: int64
这里由于将data位置的参数传入字典,将字典的键作为了Series对象的index,所以如果再次指定index的时候会出现一些新的情况:
下面就使用代码简单的介绍一下这三种情况。
import pandas as pd
d = {"a":0,"b":1,"c":2}
s = pd.Series(d,index = ["d","e"])
print(s)
result:
d NaN
e NaN
dtype: float64
import pandas as pd
d = {"a":0,"b":1,"c":2}
s = pd.Series(d,index = ["a","d"])
print(s)
result:
a 0.0
d NaN
dtype: float64
import pandas as pd
d = {"a":0,"b":1,"c":2}
s = pd.Series(d,index = ["a","b","c"])
print(s)
result:
a 0
b 1
c 2
dtype: int64
我们知道创建Series对象的一般格式,包含两个参数data和index索引。我们使用Python字典作为创建Series的data,同时我们知道当将字典作为创建Series对象的data的话,Python字典中的key可以作为Series的index,但是此时我们仍然可以继续指定index,通过上面的三种情况的描述,可以得出结论,使用字典创建Series,同时指定index的话,此时的index起到一个筛选的作用,最终的输出结果就是指定的index,如果指定的index在字典中的key中,则将对应的值关联到指定的index中;如果指定的index不在字典中的key中,则将NaN关联到指定index中。由于Python中字典中的key不能够重复,所以虽然Series允许使用有重复的index值,但是如果使用字典创建Series的时候肯定不会有相同的index值。
本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有