Series

Series的创建方式

用列表创建(最常用)

会自动创建一个0到N-1(N为数据的长度)的整数型索引0,1,2,3

指定index(索引)

用字典创建(非常常用)

标量广播

用Numpy数组创建

其实这种方式和列表类似,但是底层更高效。

 


Series常用属性

index

Series的索引对象,返回的是一个Index对象,是一个可迭代的对象,那么就可以用for 来遍历它

values

Series的值,是一个ndarray数组

ndim

Series的维度,永远是1,因为Series就是一维结构

shape

Series的形状,永远是(n,) ,因为是一维的,类似于Numpy,用元组表示

size

Series的元素个数,和len()一样,有缺失值的话也统计

dtype/dtypes

Series的元素类型,且Series里只能有一种dtype。在Series中,dtype和dtypes是一样的。

name

Series的名字,在DataFrame中,就会变成列名。

索引访问(重点)

loc[]

按照标签访问(也可以说是显示索引),如果是切片的话,一定记住,是两边都是闭区间。其实更像是dict 访问他的key,hhhhh

iloc[]

按照位置索引(也可以说是隐式索引),这里就和str 什么的一样了,都是左闭右开区间的,这里是和loc[] 这里不太一样的点。

at[]

单标签访问(更快),只能取一个值,比loc更快

iat[]

单个位置访问,比iloc[]更快

 


Series常用方法

查看数据

head(n)

查看前n行,就是快速看看数据长啥样,如果不写,默认是5行

tail(n)

看后n行,和head(n)类似,如果不写,默认是5行。但是也是从上往下显示的。

判断&缺失值

isin() 是否在某个集合里

他会返回一个values 是 布尔类型的Series

isna() 是否是缺失值

同样也是返回布尔类型的Series,来判断每一个value 是不是缺失值

统计计算

sum() 求和

求和,会自动忽略缺失值,有缺失值的话,都是float了

mean() 平均值

这里除的是有效值的数目,而不是长度,所以下面例子的值应该是2.5 而不是2

min()/max()

这里就是求最大最小值,不多赘述。

var()/std()

这里是方差和标准差,这里粘贴一个比较好的介绍:方差标准差

median()/mode()

median(): 中位数,排序,最中间的一个或者两个

mode(): 众数,这里记得,可能会返回多个值

quantile(q)

分位数,根据q去定

q含义
0.5中位数
0.25下四分位
0.75上四分位

descrone() 一键统计

返回常见的统计信息

count/mean/std/min/25%/50%/75%/max,也是一个Series

 

计数/去重

value_count()

非常常用,每个值出现的次数

count()

统计非空的数量,不包含NaN/None/...

drop_duplicates()

去重(保留顺序)

打印出来的还是一个去除了重复项的Series,并且,缺失值都算一种

unique()

去重,不过返回的是一个ndarray

nunique()

去重后元素的个数,不包含缺失值

排序&抽样

sample()

随机抽样,返回的也是一个Series

sort_index()

按照索引进行排序

 

sort_values()

按照值进行排序,缺失值都在后面排着

数据处理

replace() 替换值

to_frame()

转DataFrame

equals()

判断两个Series是否相等,必须index 和value 都相等才行

keys()

和index属性一样的作用,返回一个Index对象,不过多赘述

遍历

和字典差不多

Series的布尔索引

其实我觉得就是用True/False 去筛选数据的

条件筛选

假如我们要筛选出s中大于20的数据,那么我们的条件就应该写 s > 20

返回了一个Series,然后values 是布尔类型的数据,那么我们只需要把条件,放到中括号里,就是它的基本用法了,只保留了为True的数据,也是一个Series

多条件筛选

其实没有什么特别大的区别,就是把条件连接起来,不能用and 或者 or,必须用 &|,并且必须加括号。 这里必须需要注意 ,不然就报错!!!

 


Series的运算

与标量运算

Series与Series运算

会根据标签索引进行对位计算,索引没有匹配上的会用NaN填充。