Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)。
属性或方法 | 描述 |
---|---|
axes | 返回行轴标签列表。 |
dtype | 返回对象的数据类型(dtype)。 |
empty | 如果系列为空,则返回True。 |
ndim | 返回底层数据的维数,默认定义:1。 |
size | 返回基础数据中的元素数。 |
values | 将系列作为ndarray返回。 |
head() | 返回前n行。 |
tail() | 返回最后n行。 |
下边生成一个最简单的 Series 对象,因为没有给 Series 指定索引,所以此时会使用默认索引(从 0 到 N-1 )。
12345 | #coding=utf-8import numpy as npimport pandas as pds = pd.Series([1, 3, 6, np.nan, 44, 1]) |
---|
0 1.0
1 3.0
2 6.0
3 NaN
4 44.0
5 1.0
dtype: float64
当要生成一个指定索引的 Series 时:
1 | s = pd.Series([1, 3, 6, np.nan, 44, 1],index = ['a', 'b', 'c', 'd', 'e', 'f']) |
---|
a 1.0
b 3.0
c 6.0
d NaN
e 44.0
f 1.0
dtype: float64
也可以通过一个字典来创建 Series 对象:
12 | d = {'Java': 35000, 'PHP': 71000, 'Python': 16000, 'JavaScript': 5000}ser = pd.Series(d) |
---|
Java 35000
JavaScript 5000
PHP 71000
Python 16000
dtype: int64
根据行号读取上面用字典创建的 Series:
1234567891011 | ser[0] #读取第 0 行的元素ser[1:] #支持 Python 的切片,读取第一行及后面所有的元素ser["Java"] #根据索引值来读取,注意如果索引不存在,则会报 KeyErrorser[['Java','PHP']] #读取多条指定索引值的数据ser.values #获取所有的值ser.index #获取所有的索引 |
---|
35000
JavaScript 5000
PHP 71000
Python 16000
dtype: int64
35000
Java 35000
PHP 71000
dtype: int64
[35000 5000 71000 16000]
Index([u'Java', u'JavaScript', u'PHP', u'Python'], dtype='object')
Pandas 的 Series 保留了 Numpy 对矩阵的一些操作(四则运算,数据函数等),并同时保持索引的使用:
123456789 | ser.sum()ser.min()ser.max()ser * 2ser[ser > 10000] |
---|
127000
5000
71000
Java 70000
JavaScript 10000
PHP 142000
Python 32000
dtype: int64
Java 35000
PHP 71000
Python 16000
dtype: int64
多个 Series 之间也可以进行运算,但你可能会考虑一个问题,就是我两个 Series 之间的索引都不一样,怎么计算,先看个例子吧:
12345678910111213141516 | #coding=utf-8import numpy as npimport pandas as pdd = {'Java': 35000, 'PHP': 71000, 'Python': 16000, 'JavaScript': 5000}ser = pd.Series(d)d1 = {'Java': 50000, 'PHP': 800, 'Python': 100, 'JavaScript': 6000, 'C#':900}ser1 = pd.Series(d1)ser + ser1ser - ser1# 乘除写法都一样,这里不再演示ser[1:] + ser1 |
---|
Java 35000
JavaScript 5000
PHP 71000
Python 16000
dtype: int64
C# 900
Java 50000
JavaScript 6000
PHP 800
Python 100
dtype: int64
C# NaN
Java 85000.0
JavaScript 11000.0
PHP 71800.0
Python 16100.0
dtype: float64
C# NaN
Java -15000.0
JavaScript -1000.0
PHP 70200.0
Python 15900.0
dtype: float64
C# NaN
Java NaN
JavaScript 11000.0
PHP 71800.0
Python 16100.0
dtype: float64
由此可见,当多个 Series 之间进行计算时,会自动对齐索引,匹配不上的索引会自动设为 NaN,即结果为空,表示缺失。