pandas中的series数据类型详解
本文介绍了pandas中的series数据类型详解,分享给大家,具体如下:
importpandasaspd
importnumpyasnp
importnames
'''
写在前面的话:
1、series与array类型的不同之处为series有索引,而另一个没有;series中的数据必须是一维的,而array类型不一定
2、可以把series看成一个定长的有序字典,可以通过shape,index,values等得到series的属性
'''
#1、series的创建
'''
(1)由列表或numpy数组创建
默认索引为0到N-1的整数型索引,如s1;
可以通过设置index参数指定索引,如s2;
通过这种方式创建的series,不是array的副本,即对series操作的同时也改变了原先的array数组,如s3
(2)由字典创建
字典的键名为索引,键值为值,如s4;
'''
n1=np.array([1,4,5,67,7,43,])
s1=pd.Series(n1)
#print(s1)
'''
1
4
5
67
7
43
dtype:int32
'''
s2=pd.Series(n1,index=['a','b','c','d','e','f'])
#print(s2)
'''
a1
b4
c5
d67
e7
f43
dtype:int32
'''
#print(n1)
'''
[14567743]
'''
s1[2]=100
s3=s1
#print(s3)
'''
1
4
100
67
7
43
dtype:int32
'''
#print(n1)
'''
[1410067743]
'''
dict1={}
foriinrange(10,15):
#names.get_last_name(),随机生成英文名字
dict1[names.get_last_name()]=i
s4=pd.Series(dict1)
#print(s4)
'''
Poole10
Allen11
Davis12
Roland13
Brehm14
dtype:int64
'''
#2、series的索引
'''
(1)通过index取值,可以通过下标获取,也可以通过指定索引获取,如s6,s7
(2)通过.loc[](显示索引)获取,这种方式只能获取显示出来的索引,无法通过下标获取,如s7(推荐)
(3)隐式索引,使用整数作为索引值,使用.icol[],如s9(推荐)
'''
s5=pd.Series(np.array([1,5,9,7,6,4,52,8]),index=[list('abcdefgh')])
#print(s5)
'''
a1
b5
c9
d7
e6
f4
g52
h8
dtype:int32
'''
s6=s5[2]
#print(s6)
'''
'''
s7=s5['c']
#print(s7)
'''
c9
dtype:int32
'''
s8=s5.loc['c']
#print(s8)
'''
c9
dtype:int32
'''
s9=s5.iloc[2]
#print(s9)
'''
'''
#3、series的切片
'''
1、series的切片和列表的用法类似,不同之处在于建议使用.loc[:]和.iloc[:],如s10和s11。当然直接使用[:]也可以。
2、当遇到特别长的series,我们支取出前5条或后5条数据时可以直接使用.head()或.tail()
'''
s5=pd.Series(np.array([1,5,9,7,6,4,52,8]),index=[list('abcdefgh')])
#print(s5)
'''
a1
b5
c9
d7
e6
f4
g52
h8
dtype:int32
'''
s10=s5.loc['b':'g']
#print(s10)
'''
b5
c9
d7
e6
f4
g52
dtype:int32
'''
s11=s5.iloc[1:7]
#print(s11)
'''
b5
c9
d7
e6
f4
g52
dtype:int32
'''
#4、关于NaN
'''
(1)NaN是代表空值,但不等于None。两者的数据类型不一样,None的类型为,而NaN的类型为;
(2)可以使用pd.isnull(),pd.notnull(),或自带isnull(),notnull()函数检测缺失数据
'''
#print(type(None),type(np.nan))
'''
'''
s12=pd.Series([1,2,None,np.nan],index=list('烽火雷电'))
#print(s12)
'''
烽1.0
火2.0
雷NaN
电NaN
dtype:float64
'''
#print(pd.isnull(s12))
'''
烽False
火False
雷True
电True
dtype:bool
'''
#print(pd.notnull(s12))
'''
烽True
火True
雷False
电False
dtype:bool
'''
#print(s12.notnull())
'''
烽True
火True
雷False
电False
dtype:bool
'''
#print(s12.isnull())
'''
烽False
火False
雷True
电True
dtype:bool
'''
#取出series中不为空的值
#print(s12[s12.notnull()])
'''
烽1.0
火2.0
dtype:float64
'''
#series的name属性
'''
'''
s12.name='风水'
#print(s12)
'''
烽1.0
火2.0
雷NaN
电NaN
Name:风水,dtype:float64
'''
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。