简介
Series
结构,也称Series
序列,是pandas
常用的数据结构之一,它是一种类似于一维数组的结构,由一组数据值value
和一组标签索引index
组成,其中数据值和标签索引一一对应(有点像字典类型)
Series
可以保存任何数据类型,比如整数,字符串,浮点数,python
对象等,它的标签默认为0开始依次递增。
创建Series对象
import pandas as pd
s=pd.Series( data, index, dtype, copy)
参数说明:
参数名称 | 描述 |
| 输入的数据,可以是列表、常量、ndarray 数组等。 |
| 索引值必须是惟一的,如果没有传递索引,则默认为 np.arrange(n)。 |
| dtype表示数据类型,如果没有提供,则会自动判断得出。 |
| 表示对 data 进行拷贝,默认为 False |
下面展示不同的创建Series
的方法
ndarray创建Series对象
先做些准备工作,后面写代码就不写了
# 导入一些库和解决中文乱码的问题
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family="FangSong")
自动创建索引
# 创建Series,自动创建索引
data = np.arange(5)
print(data)
a = pd.Series(data)
print(a)
指定索引
# 指定索引
a=pd.Series(data=['a','b','c','d'],index=['First','Second','Third','Forth'])
print(a)
用字典类型数据创建
# 用字典类型数据创建Series类型,不指定index
dic={'tom':19,'amy':20,'dog':18,'marry':22}
print(dic)
a=pd.Series(dic)
print(a)
# 用字典类型数据创建Series类型,指定index
dic={'a':1,'b':3,'c':2}
a=pd.Series(dic,index=['a','c','b','d'])
print(a)
访问Series数据
我们有两种方式访问Series
数据,位置索引和标签索引
# 访问Series数据
data=np.arange(1,6)
index=['a','b','c','d','e']
a=pd.Series(data,index=index)
print(a)
print("-"*50)
# 使用下标和标签索引访问某一个数据
print(a[1])
print(a['b'])
print("-"*50)
# 使用下标和标签索引访问多个数据
print(a[2:])
print(a[['a','c','d']])
位置索引访问操作方式和numpy
基本上一模一样,而标签索引访问和字典的操作方式基本上一模一样
Series常用属性
名称 | 属性 |
| 以列表形式返回行标签索引 |
| 返回数据类型 |
| 返回Series是否为空,类型为bool |
| 返回数据维度 |
| 返回数据元素的数量 |
| 以 |
| 返回一个 |
代码
# 常用属性
data=np.arange(1,6)
index=['a','b','c','d','e']
a=pd.Series(data,index=index)
print(a)
print("-"*50)
# axex:以列表形式返回行标签索引
print(a.axes)
print("-"*50)
# dtype:返回数据类型
print(a.dtype)
print("-"*50)
# empty:返回Series是否为空,类型为bool
print(a.empty)
print("-"*50)
# ndim:返回数据维度
print(a.ndim)
print("-"*50)
# size:返回数据元素的数量
print(a.size)
print("-"*50)
# values:以ndarray形式返回Series对象
print(a.values)
print("-"*50)
# index:返回一个RangleIndex对象,描述索引值
print(a.index)
print("-"*50)
效果
Series常用方法
方法 | 描述 |
| 返回前n行数据,默认是前五行 |
| 返回最后n行数据,默认是最后五行 |
| 检测Series中的缺失值,值缺失为 |
| 检测Series中的缺失值,值缺失为 |
代码
data=np.arange(1,6).astype(float)
data[4]=np.nan
index=['a','b','c','d','e']
a=pd.Series(data,index=index)
print(a)
print("-"*50)
print(a.head(3))
print(a.tail(3))
print("-"*50)
print(pd.isnull(a))
print("-"*50)
print(pd.notnull(a))