1.Series对象 : 包含index和values
不指定索引
import pandas as pd
s1 = pd.Series(['小黄', 20, '小黄'])
s1
s1.index
s1.values
#结果
'''
0 小黄
1 20
2 男
dtype: object
'''
'''
RangeIndex(start=0, stop=3, step=1)
'''
'''
array(['小黄', 20, '男'], dtype=object)
'''
指定索引
import pandas as pd
indexd = ['a', 'b', 'c', 'd']
valued = [1, 2, 3, 4]
s = pd.Series(valued, index = indexd)
#s = Series([1, 2, 3, 4], index = indexd)
s
#结果
'''
a 1
b 2
c 3
d 4
dtype: int64
'''
通过字典来创建Series对象
import pandas as pd
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
ser = pd.Series(sdata)
ser
#结果
'''
Ohio 35000
Oregon 16000
Texas 71000
Utah 5000
dtype: int64
'''
在用字典生成Series的时候,也可以指定索引,当索引中值对应的字典中的值不存在的时候,则此索引的值标记为Missing,NA,并且可以通过函数(pandas.isnull,pandas.notnull)来确定哪些索引对应的值是没有的.
import pandas as pd
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
states = ['California', 'Ohio', 'Oregon', 'Texas']
ser = pd.Series(sdata,index = states)
ser
#结果
'''
California NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
dtype: float64
'''
2.命名: Series 和 index均可以命名
import pandas as pd
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
ser = pd.Series(sdata)
ser.name = 'number'
ser.index.name = 'label'
#结果
'''
label
Ohio 35000
Oregon 16000
Texas 71000
Utah 5000
Name: number, dtype: int64
'''
3.索引
a.使用index的值进行索引
import pandas as pd
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
ser = pd.Series(sdata)
ser['Ohio']
ser['Ohio':'Texas']
#结果
'''
35000
'''
'''
Ohio 35000
Oregon 16000
Texas 71000
dtype: int64
'''
请注意代码中的切片索引包含终止值。
b.使用下标进行索引
import pandas as pd
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
ser = pd.Series(sdata)
ser[[0, 1]]
ser[0:2]
#结果
'''
Ohio 35000
Oregon 16000
dtype: int64
'''
'''
Ohio 35000
Oregon 16000
'''
注意上面的切片索引,不包括终止值。
c.上面的index为字符串,假如index为数字,这个时候进行索引是按照index值进行还是按照下标进行?
s1 = pd.Series([2,3,4,5], index=[1,2,3,4])
print(s1[2])
'''
结果:
3
'''
print(s1[0])
#会报错
print(s1[[2,4]])
'''
结果:
2 3
4 5
dtype: int64
'''
print(s1[1:3])
'''
结果:
2 3
3 4
dtype: int64
'''
可以看出来,当index为整数的时候,那么前两种选择是使用index的值进行索引, 而后一种切片选择使用的是下标进行索引。
d使用bool值进行索引
import pandas as pd
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
ser = pd.Series(sdata)
ser[ser > 5000]
ser[ser==35000]
#结果
'''
Ohio 35000
Oregon 16000
Texas 71000
dtype: int64
'''
'''
Ohio 35000
dtype: int64
'''