Series 是pandas两大数据结构中(DataFrame,Series)的一种。使用pandas 前需要将pandas 模块引入,因为Series和DataFrame用的次数非常多,所以将其引入本地命名空间中会更方便。
-
from pandas import Series, DataFrame
-
import pandas as pd
因此,一般在代码中看到pd.,都指的是pandas。
1.创建Series
Series的定义:Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。
Series对象本质上是一个NumPy的数组,因此NumPy的数组处理函数可以直接对Series进行处理。但是Series除了可以使用位置作为下标存取元素之外,还可以使用标签下标存取元素,这一点和字典相似。每个Series对象实际上都由两个数组组成:
index: 它是从NumPy数组继承的Index对象,保存标签信息。
values: 保存值的NumPy数组。
注意三点:
1. Series是一种类似于一维数组(数组:ndarray)的对象
2. 它的数据类型没有限制(各种NumPy数据类型)
3. 它有索引,把索引当做数据的标签(key)看待,这样就类似字典了(只是类似,实质上市数组)
4.Series同时具有数组和字典的功能,因此它也支持一些字典的方法
创建数组,例如:
-
In [1]:arr=[1,2,3,4] #创建数组
-
-
In [2]:arr
-
Out[2]: [1, 2, 3, 4]
创建Series:
-
series_1=Series(arr)
-
series_1
-
Out[146]:
-
0 1
-
1 2
-
2 3
-
3 4
-
dtype: int64
-
series_2=Series([1,2,3,4])
-
series_2
-
Out[148]:
-
0 1
-
1 2
-
2 3
-
3 4
-
dtype: int64
创建包含多种数据类型的Series:
-
series_3=Series([1,2,'3',4,'a']) <span style="font-family: Arial, Helvetica, sans-serif;">#包含数字和字符串</span>
-
series_3
-
Out[150]:
-
0 1
-
1 2
-
2 3
-
3 4
-
4 a
-
dtype: object #类型变成了字符串
2.Series索引
Series创建后会自动生成索引,默认从0开始
可以指定和修改索引
-
In [154]: series_4.index=['a','b','c']
-
-
In [155]: series_4
-
Out[155]:
-
a 1
-
b 2
-
c 3
修改索引除了这里的直接修改还有一个reindex()方法。
3.Series增删改查
Series创建后可以对数据进行增删改查
3.1 增:
Series的add()方法是加法计算不是增加Series元素用的。
使用append连接其他Series
3.2删:
-
In [162]: series_4.drop('a')
-
Out[162]:
-
b 2
-
c 3
-
dtype: int64
3.3 改:
-
In [170]: series_4['a']=4
-
-
In [171]: series_4
-
Out[171]:
-
a 4
-
b 2
-
c 3
-
dtype: int64
3.4 查:
通过索引查单值
-
In [172]: series_4['a']
-
Out[172]: 4
通过索引序列查多值:
-
series_4[['a','b']]
-
Out[174]:
-
a 4
-
b 2
-
dtype: int64
通过布尔类型索引筛选:
-
In [175]: series_4[series_4>2]
-
Out[175]:
-
a 4
-
c 3
-
dtype: int64
通过位置切片和标签切片查询数据:
-
series_4
-
Out[194]:
-
a 4
-
b 2
-
c 3
-
dtype: int64
-
-
series_4[:2]
-
Out[195]:
-
a 4
-
b 2
-
dtype: int64
-
-
series_4['a':'c']
-
Out[196]:
-
a 4
-
b 2
-
c 3
-
dtype: int64
4.通过字典创建Series
-
series_5=Series({'a':1,'b':2,'c':3})
-
-
series_5
-
Out[201]:
-
a 1
-
b 2
-
c 3
-
dtype: int64