Series

Series 是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据。轴标签统称为索引。调用 pd.Series 函数即可创建 Series:
用值列表生成 Series 时,Pandas 默认自动生成整数索引:

  1. s = pd.Series(data, index=index)

上述代码中,data 支持以下数据类型:

Python 字典
多维数组
标量值(如,5)
index 是轴标签列表。不同数据可分为以下几种情况:

Series:多维数组

data 是多维数组时,index 长度必须与 data 长度一致。没有指定 index 参数时,创建数值型索引,即 [0, …, len(data) - 1]。

  1. s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])

Series:字典

Series 可以用字典实例化:

  1. dic = {'a':3,'b':2,'c':1}
  2. a = pd.Series(dic)
  3. a
  4. Out[40]:
  5. a 3
  6. b 2
  7. c 1
  8. dtype: int64

标量值

data 是标量值时,必须提供索引。Series 按索引长度重复该标量值,否则不知道有多少列值。

  1. pd.Series(5.,index = list(range(5)))
  2. Out[41]:
  3. 0 5.0
  4. 1 5.0
  5. 2 5.0
  6. 3 5.0
  7. 4 5.0
  8. dtype: float64

Series 类似字典

Series 类似固定大小的字典,可以用索引标签提取值或设置值:

  1. a = pd.Series([1,3,5,2,10],index = list('abcde'))
  2. a['a']
  3. Out[43]: 1
  4. 'e' in a
  5. Out[44]: True
  6. 'g' in a
  7. Out[45]: False

矢量操作与对齐 Series 标签

Series 和多维数组的主要区别在于, Series 之间的操作会自动基于标签对齐数据。因此,不用顾及执行计算操作的 Series 是否有相同的标签。

  1. a*2
  2. Out[47]:
  3. a 2
  4. b 6
  5. c 10
  6. d 4
  7. e 20
  8. dtype: int64

操作未对齐索引的 Series, 其计算结果是所有涉及索引的并集。如果在 Series 里找不到标签,运算结果标记为 NaN,即缺失值。Pandas 数据结构集成的数据对齐功能,是 Pandas 区别于大多数标签型数据处理工具的重要特性。

  1. a[1:] + a[:-1]
  2. Out[50]:
  3. a NaN
  4. b 6.0
  5. c 10.0
  6. d 4.0
  7. e NaN
  8. dtype: float64

注意:让不同索引对象操作的默认结果生成索引并集,是为了避免信息丢失。就算缺失了数据,索引标签依然包含计算的重要信息。当然,也可以用dropna 函数清除含有缺失值的标签。

名称属性

Series 支持 name 属性。
pandas.Series.rename() 方法用于重命名 Series