r library car_R&Python Data Science 系列:数据处理(3)

承接上面内容,本部分将剩余函数介绍完整。

R&Python Data Science 系列:数据处理(1)

R&Python Data Science 系列:数据处理(2)

1 重塑函数
这里只介绍arrange()和rename()两个函数。

1.1 arrange函数
排序函数,按照某(几)个指定的列按照升(降)序排列重新排列数据集,参数ascending = False,降序排列,ascending = True,升序排列;

Python实现

from dfply import *import numpy as npimport pandas as pd###按照price升序排列diamonds >> arrange(X.price, ascending = True) >> head(4)
1dae2893755dc26999f403a815adfaab.png
###按照price降序排列diamonds >> arrange(X.price, ascending = False) >> head(4)
08d2a53bcd40f221599e3c207bd4d8c9.png

R实现

library(tidyverse)library(ggplot2)library(dplyr)##按照price升序排列diamonds %>% arrange(price) %>% head(4)​##按照price降序排列diamonds %>% arrange(desc(price)) %>% head(4)
c0698140684900a0d040dee82e980c8b.png

注意:Python排列顺序使用参数ascending控制;R语言中使用desc函数;

1.2 rename函数
重命名函数,Python和R语言中使用方法相同,new_name = old_name:

Python实现

###将cut重命名为CUTdiamonds >> rename(CUT = X.cut) >> head(5)
c3428b1e03d249819161fac9bf3cc7e2.png

R实现

###将cut重命名为CUTdiamonds %>% rename(CUT = cut) %>% head(5)
8eb685d6af36f5fa6326baf344b9fb77.png

2 汇总函数
Python中汇总函数主要有summarize()和summarize_each()函数,这里的"汇总"翻译成概括更加合适,summarize()和summarize_each()区别在于:对某(几)列作用几个函数,summarize()需要几个函数依次作用于对应的列,而summarize_each()将几个函数以列表形式作为第一个参数,作用于后面的列:

Python实现

###计算钻石价格price的最大值、最小值diamonds >> summarize(price_max = X.price.max(), price_min = X.price.min()) >> head(4)
d52afef68fe2453efd8b6b342db94bba.png
###计算x、y、z的最大值和最小值diamonds >> summarize_each([np.max, np.min], X.x, X.y, X.z) >> head(4)
c7abe8d6e3a3845054b6a40012a0745a.png

R实现

##计算钻石价格price的最大值、最小值diamonds %>% summarise(price_max = max(price), price_min=min(price))​###计算钻石x、y、z的最大值、最小值diamonds %>% select(x, y, z) %>% summarise_all(list(min, max))
a2fd9cd1067a7e643d7bccedbfbcd33e.png

注意:R语言中没有summarise_each(),但是summarise_all()有相同的处理方式。

3 窗口函数
窗口函数,是对某列操作,返回长度相同的一列,主要包括排名函数、偏移函数、累计聚合函数。

3.1 排名函数
Python中排名函数主要有row_number()、min_rank()、dense_rank(),R语言也是这个3个函数,函数名都是相同的,用法也完全相同。在某种分组排序规则之后,row_number()生成一个连续不重复的编码,min_rank()生成一个不连续的编码,但是对相同的记录编码相同,而dense_rank()生成一个连续的编码,相同记录有相同的编码:

Python实现

##新增一列排序,row_numberdiamonds >> select(X.price) >> mutate(price_rn = row_number(X.price)) >> head(6)
56900106efe2ec6b717c1d4b0c596584.png
#新增一列排序,min_rankdiamonds >> select(X.price) >> mutate(price_mrank = min_rank(X.price)) >> head(6)
4f52c680456ae653593e59257dd5df47.png
#新增一列排序,dense_rankdiamonds >> select(X.price) >> mutate(price_drank = dense_rank(X.price)) >> head(6)
e32f6d54aecf2609388e6f798913387c.png

R实现

#新增一列排序,row_numberdiamonds %>% select(price) %>% mutate(price_rn = row_number(price)) %>% head(6)​#新增一列排序,min_rankdiamonds %>% select(price) %>% mutate(price_mrank = min_rank(price)) %>% head(6)​#新增一列排序,dense_rankdiamonds %>% select(price) %>% mutate(price_drank = dense_rank(price)) %>% head(6)
624167ae1bc08016772a4696095094c3.png

3.2 偏移函数
两个偏移函数lead()和lag():
lead(column,n):按照某种分组排序规则之后,向下取某列数据的第n行记录

lag(column,n):按照某种分组排序规则之后,向上取某列数据的第n行记录

Python实现

(diamonds >> arrange(X.price) >> select(X.price) >> mutate(price_lead1 = lead(X.price,1), price_lead2 = lead(X.price,2),  price_lag1 = lag(X.price,1), price_lag2 = lag(X.price,2)) >> head(5))
5901e02441c40c50307c21279a21b2b8.png

R实现

diamonds %>%  arrange(price) %>%  select(price) %>%  mutate(price_lead1 = lead(price,1), price_lead2 = lead(price,2),  price_lag1 = lag(price,1), price_lag2 = lag(price,2)) %>%  head(5)
97fc85fd7e6f2812400e3054d2e12882.png

3.3 累计聚合函数
累计聚合函数主要包括cumsum()、cummean()、cummax()、cummin()以及cumprod(),都是在某种排序规则下,函数作用于第一行记录,结果记在第一行,函数作用于前两行记录,结果记录在第二行,函数作用于前三行记录,结果记录在第三行...

Python实现

(diamonds >> select(X.price) >> head(6) >>mutate(price_cumsum = cumsum(X.price), price_cummean = cummean(X.price), price_cummax = cummax(X.price), price_cummin = cummin(X.price), price_cumprod = cumprod(X.price)))
77b6041715c579152ccdf971b39dbb9a.png

R实现

diamonds %>% select(price) %>% head(6) %>% mutate(price_cumsum = cumsum(price), price_cummean = cummean(price), price_cummax = cummax(price), price_cummin = cummin(price), price_cumprod = cumprod(price))
62b2e3f6d8f54ecadc65337c84490782.png

4 聚合函数

聚合函数是对某一列数据,使用分组函数和排序函数进行处理之后(可以省略),使用聚合函数,返回一个值。主要有first()、last()、nth()、n()以及n_distinct():

first(column):按照某种规则分组排序后(可选),取第一行数据记录

last(column):按照某种规则分组排序后(可选),取最后一行数据记录

nth(column,n):按照某种规则分组排序后(可选),取第n行的记录

n():按照某种规则分组排序后(可选),count计数,不去重

n_distinct():按照某种规则分组排序后(可选),count计数,去重

7e661efb70d4843d625f548bd3a02751.png

Python实现

##聚合函数(diamonds >> head(6) >> select(X.price) >> summarise(price_first = first(X.price), price_last = last(X.price),price_nthprice = nth(X.price,3), price_n = n(X.price), price_disn = n_distinct(X.price)))
1731a8cfc131c0bf1e6a018caebd4809.png

R实现

#聚合函数diamonds %>% head(6) %>% select(price) %>% summarise(price_first = first(price), price_last = last(price), price_nthprice = nth(price,3), price_n = n(), price_disn = n_distinct(price))​
cda802b88d4dac5f32304a277ff35517.png

注意:Python中n()函数需要传入参数,R中不需要传入参数;Python中输出列按照字段名称升序排列,R中输出的列按照书写顺序输出。

5 总结

数据处理1-3,主要介绍了Python中dfply和R中dplyr包中的数据处理函数,几乎满足数据预处理中筛选变量、衍生变量以及计算一些统计量的需求。

R语言使用sort函数对向量数据进行排序、默认从小到大升序排序、设置decreasing为真进行降序排序 阅读详情

相关推荐

R语言dplyr包:高效数据处理函数arrange、sample_n、n_distinct、select、compute等

今天是个特别的日子,小编在这里祝大家情人节快乐!本篇文章继续之前文章提到的关于dplyr包数据处理的函数。错了,小编是准备那天发的,忘发了 R语言数据整理、分析上面的方法是很多的,并且通俗易懂,相信热衷于用R语言处理数据的同仁也深有体会。 1、数据排序函数 arrange()函数其实和大家经常用的EXCEL中的降序、升序相似,但该函数的功能肯定更便捷、强大,可以按照多列(有序的列)进行...

发财的小手点点关注! 1万+

R语言中基于多个字段进行降序排序的函数——arrange()

通过指定排序字段和排序顺序,我们可以轻松对数据框进行排序。假设我们有一个包含学生信息的数据框,包括学生姓名、年龄和成绩。我们希望按照成绩降序排序,并在成绩相同时按照年龄降序排序。在R语言中,我们经常需要对数据进行排序以满足分析和可视化的需求。而当需要按照多个字段进行排序时,我们可以使用。你可以根据需要指定多个字段,函数将按照字段的先后顺序进行排序。可以看到,数据框按照成绩降序排序,成绩相同时按照年龄降序排序。函数接受两个参数:待排序的数据框(或数据帧)和排序的字段。函数的用法,并提供相应的源代码示例。

2301_79330513的博客 1978

R语言中的字段降序排序

在R语言中,对数据进行排序是一项常见的操。本文将详细介绍如何在R语言中对字段进行降序排序,并提供相应的源代码示例。假设我们有一个包含多个字段的数据框(data frame),我们希望按照其中一个字段的值进行降序排序。通过以上示例代码,我们可以在R语言中实现对字段的降序排序。根据实际需求,可以灵活调整排序字段和顺序,以满足数据分析和处理的要求。然后,使用排序后的索引对原始数据框进行重新排序,得到按照"Score"字段降序排序的数据框。现在,我们将按照"Score"字段的值对数据进行降序排序。

HackNebulaZ的博客 969

numpy.arrange函数知识大全

numpy.arrange函数知识大全numpy.arrange函数用 numpy.arrange函数用 numpy.arrange函数的用是生成带起点和终点的特定步长的排列。 根据函数的参数的个数分为以下几种情况: 1.只有一个参数,则这个参数为终点。起点默认为0,步长默认为1. numpy.arange(5)的结果如图: 2.有两个参数,第一个参数为起点,第二个参数为终点,步长默认为1...

Vaxue的博客 2万+

r语言rank降序_R语言学习笔记:sort、rank、order、arrange排序函数

R语言中排序有几个基本函数:sort()、rank()、order()、arrange()一、总结sort()函数是对向量进行从小到大的排序rank()函数返回的是对向量中每个数值对应的秩order()函数返回的值表示位置,依次对应的是向量的最小值、次小值、第三小值……最大值等(位置索引)arrange()函数(需加载dplyr包)针对数据框,返回基于某列排序后的数据框,方便多重依据排序二、具体用...

weixin_39559369的博客 4025

R语言基本函数的学习(持续更新)

目录前言Tidyverse包arrange()函数head()函数 filter()函数 select()函数 summarize()函数 group_by()函数 mutate()函数本篇文章给大家介绍一些在实验过程中我用到的函数,并且讲解给大家。保证小白都能听懂。arrange()函数顾名思义就是对我们的数据集进行排列,其是基于某一列数据默认从小到大排序。其使用方法如下。.data表示要排列的数据集。...表示我们排序要依据的列。例如如下代码。根据rapidcity这个数据集中的Temp列默认从小到大

m0_49425260的博客 3882

R语言:排序、筛选以及分类汇总操

  在Excel中我们可以很方便的对数据进行排序、筛选、分类汇总等基本操,R语言中没有这种傻瓜式的一键操,如何才能完成这种操?一、排序1、单变量序列排序  单变量序列的排序常用到rank、sort和order函数。  给一个例子:> a <- c(3, 1, 5) > rank(a) [1] 2 1 3 > sort(a) [1] 1 3 5 > order(a...

偷闲阁 23万+

R语言数据排序

R语言数据排序 sort()函数 order()函数

Bio大恐龙 5789

R语言rank函数详细解析

1.rank函数是什么 rank相关文档[1]可以译为"返回原数组(?)中各个元素排序(?)后的秩次(?)",表面上看确实可以得到次序,但对数组、排序、秩次交待不清。 2.rank函数使用情景 比如,在100米赛跑中,甲乙丙三人的成绩为6.8s, 8.1s, 7.2s,那么用rank函数排序获得名次: > rank(t <- c(6.8, 8.1, 7.2)) [1] 1...

weixin_30876945的博客 2242

python中range()和arrange()区别

range()和arrange()区别和用法

小⭐的博客 1973

r语言rank降序_R语言速成之第一章 向量(编辑,排序,10个基本函数)

1.4向量的编辑1.4.1扩展向量c()vcvcvcvcvc注意:单独append(vc,num)不会改变vc的值1.4.2改变元素的值直接引用后赋值vcvc[1]vc[1:3]vc[1:3]vcvc[vc>3]1.4.3删除元素引用负号然后赋值vcvcvcvc其中c(3:5)(3:5)是等价的,为了简洁可以只用(3:5)1.5向量的排序1.5.1sort函数sort()函数共有4个参数,...

weixin_42355256的博客 1970

numpy的函数使用(一):np.arrange()

arrange函数用于创建等差数组。 返回一个有起点和终点固定长的list e.g.[1, 2, 3],起点是1,终点是5,步长是1。步长相当于等差数列中的公差。 参数:可以接受1、2、3个参数。 注意:如果起始值大于终点值,会生成空的一维数组。 #1:参数值为终点,起点值默认为0,步长值默认为1a = np.arange(6)#[0 1 2 3 4 5] ...

awlrty0643的博客 1万+

numpy中的arange函数

在matplotlib中的绘图中经常会使用到numpy中arrange函数,函数返回一个有终点和起点的固定步长的排列,下面是arrange函数的一些基本的用法: ①一个参数时,参数值为终点,起点取默认值0,步长取默认值1 ②两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1 ③三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数 import numpy as np if __name__ == '__main__': nums = np.a...

二哈 2174

numpy的arrange函数,创建一维数组。和array。

numpy的arrange函数,创建一维数组。和array。

qq_52983535的博客 1303

R语言:基于多个字段进行降序排序

通过指定负号来实现降序排序,并使用排序后的索引对数据框进行重新排序。在此示例中,我们对字段1和字段2进行降序排序。最后,我们使用排序后的索引对数据框进行重新排序,并将结果存储在。假设我们有一个包含多个字段的数据框,我们希望根据其中的两个字段进行降序排序。在这个示例中,我们有三个字段:字段1、字段2和字段3。总结起来,要在R语言中基于多个字段进行降序排序,我们可以使用。在R语言中,要对数据根据多个字段进行降序排序,可以使用。结果显示,数据框按照字段1和字段2进行降序排序。函数对数据框进行排序。

HackSquad的博客 547

r语言rank降序_R语言_001向量

R语言,很多人都没有听过吧,听过也没有见过吧。本来想介绍一下,百度了一下介绍,想复制粘贴过来。一看,及其失望,如果是第一次看到这种介绍,估计已经和R没有缘分了,在这个大部分人接触的都是没有营养的信息的时代,还有比这些更没有营养的介绍。 Python都知道,因为你能接触到信息的地方,充斥着各种诱人的Python小广告(小广告是贬义词)。它是很强大,但也因此变得很庸俗,不过有用,也还是...

weixin_39609483的博客 854

R语言排序三个基本函数:sort(),rank(),order()的用法

R语言排序三个基本函数:sort(),rank(),order()的用法 1、sort() 用法:sort(a,decreasing=T) 或 sort(a,decreasing=T) 其中,a为要排序的向量 # sort()排序,排序结果不可逆转 # 默认是升序 # decreasing为TRUE,表示降序 # decreasing为FALSE,表示升序 #排序后并不会修改原对象的值 #示例如下: > a <- c(3,9,16,6,7,4,22,5,10,13) > #sort()

Girasol_YRR的博客 6万+
下一篇: 电脑电池修复_笔记本电池充不进电?小A有办法!
weixin_39829501
博客等级 码龄9年 32粉丝 125原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值