Series
数据结构#
Series#
简介#
可以理解为是建立在 Numpy 中 array 的基础上增加索引的一维数组。
使用#
- 创建 Series,创建 Series 时可以传入两个参数 data 和 index,和 NumPy 一样 data 可以传列表、元祖,index 也是如此,当传入字典的时候,它的键会作为 index,值作为 data, 还可以传 array
>>> import pandas as pd >>> import numpy as np >>> pd.Series([1,2,3,4],["a","b","c","d"]) a 1 b 2 c 3 d 4 >>> pd.Series((1,2,3,4),("a","b","c","d")) a 1 b 2 c 3 d 4 dtype: int64 >>> pd.Series({"a":1,"b":2,"c":3,"d":4}) a 1 b 2 c 3 d 4 dtype: int64 >>> pd.Series(np.arange(4)) 0 0 1 1 2 2 3 3 dtype: int32
- 选择数据,在选择数据的时候,Series 可以直接根据索引来选择,他也可以进行切片和遍历的操作
>>> s1[0] 0 >>> for i in s1: ... print(i) ... 0 1 2 3 >>> s1[1:3] 1 1 2 2 dtype: int32
- Series 还可以根据条件选择数据
>>> s1[s1>0] 1 1 2 2 3 3 dtype: int32
- Series 还可以根据条件选择数据
- Series 简单的数学运算,Series 跟 NumPy 里的 array 一样,也可以进行四则运算,不仅可以和数,也可以和 Series 对象进行,在和 Series 对象进行运算的时候,根据索引来操作,假如有存在空的时候会出现 NaN在进行不同精度的四则运算时,Pandas 会让结果的精度和两个 Series 中精度更精确的那个一样
>>> s1 = pd.Series(np.arange(4)) >>> s1+5 0 5 1 6 2 7 3 8 dtype: int32 >>> s1-3 0 -3 1 -2 2 -1 3 0 dtype: int32 >>> s1*2 0 0 1 2 2 4 3 6 dtype: int32 >>> s1/6 0 0.000000 1 0.166667 2 0.333333 3 0.500000 dtype: float64 >>> s2 = pd.Series(np.random.random(3)) >>> s2 0 0.038811 1 0.860956 2 0.751210 dtype: float64 >>> s1+s2 0 0.038811 1 1.860956 2 2.751210 3 NaN dtype: float64 >>> s1-s2 0 -0.038811 1 0.139044 2 1.248790 3 NaN dtype: float64 >>> s1*s2 0 0.000000 1 0.860956 2 1.502420 3 NaN dtype: float64 >>> s1/s2 0 0.000000 1 1.161500 2 2.662372 3 NaN dtype: float64
- 同样也可以使用 add/sub 等这样的方法进行操作
>>> s1.add(s2) 0 0.038811 1 1.860956 2 2.751210 3 NaN dtype: float64 >>> s1.sub(s2) 0 -0.038811 1 0.139044 2 1.248790 3 NaN dtype: float64
- 同样也可以使用 add/sub 等这样的方法进行操作