python pandas series_python-pandas基础数据结构(Series)

Series (带有标签的一维数组)

一、Series的创建方法

[注]import numpy as np    import pandas as pd   都省略了。

1、通过字典创建

dic = {'a':1,'b':2,'c':3,'1':'hello','2':'python','3':[1,2]}

s=pd.Series(dic)print(s,type(s))#运行结果

1hello2python3 [1, 2]

a1b2c3dtype: object

2、通过数组(ndarray)创建

参数index:是Series的标签

参数name:  是Series的名称,没有的话默认为None。可以用rename()来更改,更改后生成新的Series,不改变原来的Series

s = pd.Series(np.random.rand(5),index = list('abcde'),name = 'test')print(s,type(s))#运行结果

a 0.384840b0.202776c0.646176d0.215777e0.605895Name: test, dtype: float64

#rename()的用法

s1 = s.rename('excel')print(s1)#运行结果

a 0.499740b0.943519c0.643355d0.591372e0.418790Name: excel, dtype: float64

3、通过标量创建(必须声明index值)

s = pd.Series(5,index = range(5))print(s)#运行结果

0 5

1 5

2 5

3 5

4 5dtype: int64

二、Series的索引

1、位置下标索引

s = pd.Series(np.random.rand(5))print(s,'\n')print(s[2],type(s[2]),s[2].dtype)#运行结果

0 0.961192

1 0.394670

2 0.948766

3 0.658049

4 0.214219dtype: float640.948766189751 float64

2、标签(index)索引

当有多个标签要索引的话,要多加个[ ]

s = pd.Series(np.random.rand(5),index = list('abcde'))print(s,'\n')print(s['a'],'\n')print(s[['a','b']])#运行结果

a 0.593557b0.991561c0.611022d0.603023e0.518528dtype: float640.593556973009a0.593557b0.991561dtype: float64

3、切片索引

s1 = pd.Series(np.random.rand(5),list('abcde'))print(s1,'\n')print(s1['a':'b'],'\n') #用index做索引的话是末端包含的

print(s1[1:2],'\n') #用下标做切片索引的话和list切片是一样的,不包含末端

#运行结果

a 0.973470b0.192143c0.805640d0.623555e0.040572dtype: float64

a0.973470b0.192143dtype: float64

b0.192143dtype: float64

4、布尔型索引

布尔型索引判断,生成的是一个由布尔型组成的新的Series。

.isnull()和.notnull() 判断是否是空值,其中None表示空值,NaN表示有问题的值,两个都会被判断为空值。

s = pd.Series(np.random.rand(2)*100)

s[3] = None #添加一个空值

print(s,'\n')

bs1= s > 50bs2=s.isnull()

bs3=s.notnull()print(bs1,bs2,bs3,'\n')print(s[s > 50])#运行结果

0 71.1548

1 53.9334

3None

dtype: object

0 True1True3False

dtype: bool 0 False1False3True

dtype: bool 0 True1True3False

dtype: bool

071.1548

1 53.9334dtype: object

二、Series 的基本操作用法

1、增添(第一,直接下标索引或index添加;第二,通过append()添加,生成新的Series)

s = pd.Series(np.random.rand(2))

s[3]= 100 #用index增添

s['a'] = 200

print(s,'\n')#运行结果

0 0.646847

1 0.224802

3 100.000000a200.000000dtype: float64

s2= pd.Series(np.random.rand(2),index = ['value1','value2'])

s3= s.append(s2) #用append()增添

print(s3)#运行结果

0 0.646847

1 0.224802

3 100.000000a200.000000value10.225087value20.504572dtype: float64

2、删除(第一,用del删除;第二,用.drop()删除,会生成新的Series)

s = pd.Series(np.random.rand(5),index = list('abcde'))del s['a'] #用del删除

print(s,'\n')#运行结果

b 0.036584c0.319169d0.267866e0.855804dtype: float64

s1= s.drop(['c','d']) #用.drop()删除,删除多个要加[]

print(s1)#运行结果

b 0.036584e0.855804dtype: float64

3、修改(通过索引直接修改)

s = pd.Series(np.random.rand(5),index = list('abcde'))print(s,'\n')

s[1] = 100

print(s,'\n')

s[['c','d']] = 200

print(s)#运行结果

a 0.900485b0.955717c0.270206d0.186294e0.503710dtype: float64

a0.900485b100.000000c0.270206d0.186294e0.503710dtype: float64

a0.900485b100.000000c200.000000d200.000000e0.503710dtype: float64

4、数据查看

.head()方法是查看前几行的数据,默认是5行

.tail()方法是查看后几行的数据,默认也是5行

s = pd.Series(np.random.rand(10))print(s.head(2),'\n')print(s.tail())#运行结果

0 0.301042

1 0.344857dtype: float645 0.461262

6 0.337744

7 0.215328

8 0.735952

9 0.066285dtype: float64

5、重新索引

.reindex(新的标签,fill_value =)会根据更改后的标签重新排序,若添加了原标签中没有的新标签,则默认填入NaN,参数fill_value指对新出现的标签填入的值。

s = pd.Series(np.random.rand(3),

index= ['a','b','c'])

s1= s.reindex(['c','b','a','A'],fill_value = 100)print(s1)#运行结果

c 0.223246b0.484170a0.844028A100.000000dtype: float64

6、对齐

s1 = pd.Series(np.random.rand(3),

index= ['a','b','c'])

s2= pd.Series(np.random.rand(3),

index=['a','c','A'])print(s1,'\n')print(s2,'\n')print(s1+s2)#运行结果

a 0.168003b0.785439c0.218607dtype: float64

a0.860634c0.233973A0.691131dtype: float64

A NaN

a1.028637b NaN

c0.452580dtype: float64

空值和任何值相加都会返回空值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值