Series
Series 是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据。轴标签统称为索引。调用 pd.Series 函数即可创建 Series:
用值列表生成 Series 时,Pandas 默认自动生成整数索引:
s = pd.Series(data, index=index)
上述代码中,data 支持以下数据类型:
Python 字典
多维数组
标量值(如,5)
index 是轴标签列表。不同数据可分为以下几种情况:
Series:多维数组
data 是多维数组时,index 长度必须与 data 长度一致。没有指定 index 参数时,创建数值型索引,即 [0, …, len(data) - 1]。
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
Series:字典
Series 可以用字典实例化:
dic = {'a':3,'b':2,'c':1}
a = pd.Series(dic)
a
Out[40]:
a 3
b 2
c 1
dtype: int64
标量值
data 是标量值时,必须提供索引。Series 按索引长度重复该标量值,否则不知道有多少列值。
pd.Series(5.,index = list(range(5)))
Out[41]:
0 5.0
1 5.0
2 5.0
3 5.0
4 5.0
dtype: float64
Series 类似字典
Series 类似固定大小的字典,可以用索引标签提取值或设置值:
a = pd.Series([1,3,5,2,10],index = list('abcde'))
a['a']
Out[43]: 1
'e' in a
Out[44]: True
'g' in a
Out[45]: False
矢量操作与对齐 Series 标签
Series 和多维数组的主要区别在于, Series 之间的操作会自动基于标签对齐数据。因此,不用顾及执行计算操作的 Series 是否有相同的标签。
a*2
Out[47]:
a 2
b 6
c 10
d 4
e 20
dtype: int64
操作未对齐索引的 Series, 其计算结果是所有涉及索引的并集。如果在 Series 里找不到标签,运算结果标记为 NaN,即缺失值。Pandas 数据结构集成的数据对齐功能,是 Pandas 区别于大多数标签型数据处理工具的重要特性。
a[1:] + a[:-1]
Out[50]:
a NaN
b 6.0
c 10.0
d 4.0
e NaN
dtype: float64
注意:让不同索引对象操作的默认结果生成索引并集,是为了避免信息丢失。就算缺失了数据,索引标签依然包含计算的重要信息。当然,也可以用dropna 函数清除含有缺失值的标签。
名称属性
Series 支持 name 属性。
pandas.Series.rename() 方法用于重命名 Series