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_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_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