python全0序列_从零开始学Python--pandas(序列部分)

原标题:从零开始学Python--pandas(序列部分)

上一期我们介绍了数据分析中常用的,从数组的创建、元素的获取、数学+统计函数、随机数的生成、到外部文件的读取。这期我们再来介绍另一个重磅的数据分析常用模块--pandas。该模块更像是R语言中的向量、数据框的处理,接下来我们就一一介绍里面的小知识点。

序列

序列(Series)可以理解成是R语言中的向量,Python中的列表、元组的高级版本。为什么说是高级版本呢?因为序列与上期介绍的一维数组类似,具有更好的广播效应,既可以与一个标量进行运算,又可以进行元素级函数的计算。如下例子所示:

列表与常数10相加,报错,显示无法将列表与整形值连接,“+”运算在列表中是连接操作。

将上面的列表转换成一个序列后,就可以正常的完成运算,这就是序列的广播能力。同样,列表也不能用于元素级的数学函数,对比如下:

除了上面介绍序列功能,再来说说其他序列常用的场景,如序列的索引、成员关系、排重、排序、计数、抽样、统计运算等。

序列的索引:

由于序列是列表的扩张版,故序列也有一套类似于列表的索引方法,具体如下:

用倒数的方式取元素,序列就显得不是很方便了,我们推荐使用非常棒的iat方法,该方法不管应用于序列还是数据框都非常优秀,主要体现在简介而高速。

然而,实际工作中很少通过位置索引(下标)的方法获取到序列中的某些元素,例如1000个元素构造的序列,查出属于某个范围值总不能一个个去数吧?序列提供了另一种索引的方法--布尔索引。具体用法如下:

我们知道,在R语言中一个向量的元素是否包含于另一个向量,可以使用%in%函数进行判断,同理,Python中也有类似的方法。对于一个一维数组,in1d函数实现该功能;对于一个序列,isin方法可实现该功能。

numpy模块中的in1d函数也可以用于序列的成员关系的比较。

如果手中有一离散变量的序列,想查看该序列都有哪些水平,以及各个水平的频次,该如何操作?

没错,只要借助于unique函数(与R语言一样的函数)实现序列的排重,获得不同的水平值;通过使用value_counts函数(对应于R语言的table函数)对各个水平进行计数,并按频次降序呈现。

有的时候需要对某个序列进行升序或降序排序,虽然这样的场景并不多,但排序在数据框中的应用还是非常常用的,先来看看如何对序列进行排序:

抽样也是数据分析中常用的方法,通过从总体中抽取出一定量的样本来推断总体水平;或者通过抽样将数据拆分成两部分,一部分建模,一部分测试。pandas模块提供了sample函数(与R语言的sample函数一致)帮我们完成抽样的任务。

s .sample (n =None,frac =None,replace =False,weights =None,random_state =None,axis =None)

n:指定抽取的样本量;

frac:指定抽取的样本比例;

replace:是否有放回抽样,默认无放回;

weights:指定样本抽中的概率,默认等概论抽样;

random_state:指定抽样的随机种子;

由于总体就是男、女性别两个值,故需要抽出10个样本,必须有放回的抽,而且男女被抽中的概率还不一致,女被抽中的概率是0.8。

统计运算

pandas模块提供了比numpy模块更丰富的统计运算函数,而且还提供了类似于R语言中的summary汇总函数,即describe函数。

其中count是序列中非缺失元素的个数。哦,对了,如何判断一个序列元素是否为缺失呢?可以使用isnull函数,等同于R语言中的is.na函数。

除此,我们再来罗列一些常用的统计函数:

s.min() # 最小值

s.quantile(q=[0,0.25,0.5,0.75,1]) # 分位数函数

s.median()# 中位数

s.mode()# 众数

s.mean()# 平均值

s.mad()# 平均绝对误差

s.max# 最大值

s.sum()# 和

s.std()# 标准差

s.var()# 方差

s.skew()# 偏度

s.kurtosis()# 峰度

s.cumsum()# 和的累计,返回序列

s.cumprod()# 乘积的累积,返回序列

s.product()# 序列元素乘积

s.diff()# 序列差异(微分),返回序列

s.abs()# 绝对值,返回序列

s.pct_change() # 百分比变化 ,返回序列

s.corr(s2)#相关系数

s.ptp() # 极差 R中的range函数

今天我们的内容就介绍到这边,欢迎大家拍砖。下期我们来聊聊pandas模块的数据框DataFrame部分。

待续……

本文已获作者授权。

从零开始学Python系列:返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值