pandas.Series( data, index, dtype, copy)
data
:输入的数据,可以是列表、常量、ndarray 数组等。index
:索引值必须是唯一的,与data的长度相同,默认为np.arange(n)dtype
:数据类型copy
:是否复制数据,默认为falseimport pandas as pd
import numpy as np
s = pd.Series()
# Series([], dtype: float64)
ndarray 是 NumPy 中的数组类型,当 data 是 ndarry 时,传递的索引必须具有与数组相同的长度。假如没有给 index 参数传参,在默认情况下,索引值将使用是 range(n) 生成,其中 n 代表数组长度
# 使用默认索引,索引默认从 0 开始分配 ,其索引范围为 0 到len(data)-1,即 0 到 3。这种设置方式被称为“隐式索引"。
data = np.array(['a','b','c','d'])
s = pd.Series(data)
'''
0 a
1 b
2 c
3 d
dtype: object
'''
# 指定索引,创建显示索引
data = np.array(['a','b','c','d'])
#自定义索引标签(即显示索引)
s = pd.Series(data,index=[100,101,102,103])
'''
100 a
101 b
102 c
103 d
dtype: object
'''
使用字典创建Series时,如果没有传入索引时会按照字典的键来构造索引;当传递了索引时需要将索引标签与字典中的值一一对应。
# 没有传递索引时
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data)
'''
a 0.0
b 1.0
c 2.0
dtype: float64
'''
# 传递索引,如果字典中没有对应的键,使用NaN填充
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
'''
b 1.0
c 2.0
d NaN
a 0.0
dtype: float64
'''
如果 data 是标量值,则必须提供索引
# 使用标量5创建Series
s = pd.Series(5, index=[0, 1, 2, 3])
'''
0 5
1 5
2 5
3 5
dtype: int64
'''
通过位置访问Series数据与 ndarray 和 list 相同,使用元素自身的下标进行访问。我们知道数组的索引计数从 0 开始,这表示第一个元素存储在第 0 个索引位置上,以此类推,就可以获得 Series 序列中的每个元素。
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
# 1. 位置索引访问
print(s[0]) # 1
# 2. 通过切片的方式访问 Series 序列中的数据
print(s[:3])
'''
a 1
b 2
c 3
dtype: int64
'''
# 3. 获取后三个元素
print(s[-3:])
'''
c 3
d 4
e 5
dtype: int64
'''
Series 类似于固定大小的 dict,把 index 中的索引标签当做 key,而把 Series 序列中的元素值当做 value,然后通过 index 索引标签来访问或者修改元素值。
# 1. 使用索引访问单个元素值
s = pd.Series([6,7,8,9,10],index = ['a','b','c','d','e'])
print(s['a']) # 6
# 2. 使用索引访问多个元素值,如果使用了index中不包含的标签,会报异常
print(s[['a','c','d']])
'''
a 6
c 8
d 9
dtype: int64
'''
Series对象常用的属性:
s = pd.Series([6,7,8,9,10],index = ['a','b','c','d','e'])
# 1. axes:所有行索引
print(s.axes)
# [Index(['a', 'b', 'c', 'd', 'e'], dtype='object')]
# 2. dtype:返回对象的数据类型
print(s.dtype)
# int64
# 3. empty:判断数据对象是否为空
print (s.empty)
# False
# 4. ndim:查看序列的维度,根据定义,Series 是一维数据结构,因此它始终返回 1。
print (s.ndim)
# 1
# 5. size:返回Series对象的大小(长度)
print(s.size)
# 5
# 6. values:以数组的形式返回Series对象中的数据
print(s.values)
print(type(s.values))
'''
[ 6 7 8 9 10]
'''
# 7. index:查看 Series 中索引的取值
print(s.index)
Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
# 1. head(3):查看前3个数据,默认显示前5
s = pd.Series(np.random.randn(5))
print (s)
print("============================")
#返回前三行数据
print (s.head(3))
'''
0 1.443607
1 -0.459203
2 -0.152334
3 0.877485
4 0.168968
dtype: float64
============================
0 1.443607
1 -0.459203
2 -0.152334
dtype: float64
'''
# 2. tail(3):显示后3行数据,默认显示后5行
print (s.tail(3))
'''
2 -0.152334
3 0.877485
4 0.168968
dtype: float64
'''
s=pd.Series([1,2,5,None])
# 是空值返回True
print(pd.isnull(s))
'''
0 False
1 False
2 False
3 True
dtype: bool
'''
# 空值返回False
print(pd.notnull(s))
'''
0 True
1 True
2 True
3 False
dtype: bool
'''