pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
Series 是一维带标签的数组,它可以包含任何数据类型。包括整数,字符串,浮点数,Python 对象等。Series 可以通过标签来定位。Pandas 中,Series 可以被看作由 1 列数据组成的数据集。
参数data可以是一个数组,列表、元组或者任何可迭代的对象,也可以是一个标量值。参数index表示Series的1列数据中每一行对应的索引。参数dtype指定数据的类型。
1、创建Series对象
# 根据列表创建
>>> a = [1, 2, 3, 4]
>>> s = pd.Series(a)
>>> s
0 1
1 2
2 3
3 4
dtype: int64
# 根据元组创建
>>> b = (4, 5, 6)
>>> s1 = pd.Series(b)
>>> s1
0 4
1 5
2 6
dtype: int64
# 根据字典创建
>>> c = {"a":1, "b":2, "c":3}
>>> s2 = pd.Series(c)
>>> s2
a 1
b 2
c 3
dtype: int64
# 根据numpy 数组创建
>>> d = np.array([3, 4, 5, 6])
>>> s3 = pd.Series(d)
>>> s3
0 3
1 4
2 5
3 6
dtype: int32
# 自定义索引
>>> e = [3, 4, 5, 6]
>>> s4 = pd.Series(e, index=['a', 'b', 'c', 'd'])
>>> s4
a 3
b 4
c 5
d 6
dtype: int64
# 注意:使用字典类型时,如果指定索引,那么对应的值将不可用
>>> f = {'a':1, 'b':2, 'c':3}
>>> s5 = pd.Series(f, index=['d', 'e', 'f'])
>>> s5
d NaN
e NaN
f NaN
dtype: float64
>>> g = [3, 4, 5, 6]
# 指定数据类型,可以python基本数据类型、numpy基本数据类型或扩展数据类型
>>> s6 = pd.Series(e, index=['a', 'b', 'c', 'd'], dtype=np.float32)
>>> s6
a 3.0
b 4.0
c 5.0
d 6.0
dtype: float32
2、Series对象基本操作(索引、切片、拼接、删除、修改)
>>> a = np.arange(5, 10)
>>> a
array([5, 6, 7, 8, 9])
>>> s = pd.Series(a)
>>> s
0 5
1 6
2 7
3 8
4 9
dtype: int32
# 更换索引
>>> s.index = ['a', 'b', 'c', 'd', 'e']
>>> s
a 5
b 6
c 7
d 8
e 9
dtype: int32
# 拼接
>>> s1 = pd.Series([1, 2, 3])
>>> s2 = s1.append(s)
>>> s2
0 1
1 2
2 3
a 5
b 6
c 7
d 8
e 9
dtype: int64
# 删除
>>> s2.drop('e')
0 1
1 2
2 3
a 5
b 6
c 7
d 8
dtype: int64
# 修改
>>> s2[0] = 4
>>> s2
0 4
1 2
2 3
a 5
b 6
c 7
d 8
e 9
dtype: int64
# 索引
>>> s2['a']
5
# 切片
>>> s2[:4]
0 4
1 2
2 3
a 5
dtype: int64
3、Series对象数学运算
>>> s1 = pd.Series([1, 2, 3])
>>> s1
0 1
1 2
2 3
dtype: int64
>>> s2 = pd.Series([4, 5, 6])
>>> s2
0 4
1 5
2 6
dtype: int64
# 加法
>>> s2.add(s1)
0 5
1 7
2 9
dtype: int64
>>> s3 = pd.Series([4, 5, 6], index=[1, 2, 3])
>>> s3
1 4
2 5
3 6
dtype: int64
# 如果索引对应不同,则填充为NaN
>>> s3.add(s1)
0 NaN
1 6.0
2 8.0
3 NaN
dtype: float64
# 减法
>>> s2.sub(s1)
0 3
1 3
2 3
dtype: int64
# 乘法
>>> s2.mul(s1)
0 4
1 10
2 18
dtype: int64
# 除法
>>> s2.div(s1)
0 4.0
1 2.5
2 2.0
dtype: float64
# 求中位数
>>> s2.median()
5.0
# 求和
>>> s2.sum()
15
# 求最大值
>>> s2.max()
6
# 求最小值
>>> s2.min()
4