您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“R語言與Python數(shù)據(jù)聚合功能的用法介紹”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
R語言與Python的Pandas中具有非常豐富的數(shù)據(jù)聚合功能,今天就跟大家盤點(diǎn)一下這些函數(shù)的用法。
R語言:
transform
mutate
aggregate
grouy_by+summarize
ddply
Python:
groupby
pivot.table
在R語言中,新建變量最為快捷的方式是通過transform(當(dāng)然你可以選擇使用自定義函數(shù)),該函數(shù)支持基于同一個(gè)數(shù)據(jù)框新建多個(gè)變量。
這里仍然使用經(jīng)典的鶯尾花數(shù)據(jù)集演示:
iris1<-iris
transform與mutate兩個(gè)函數(shù)都是新建變量,但是前者僅能基于所提供的數(shù)據(jù)框內(nèi)變量進(jìn)行新建,而后者則可以直接在新建變量基礎(chǔ)上進(jìn)行操作。
(iris1<-transform(iris1,dek=Sepal.Length/Sepal.Width,pek=Petal.Length+Petal.Width))
(iris1<-dplyr::mutate(iris1,dek=Sepal.Length+Sepal.Width,jek=sqrt(dek)))
aggregate是專門用于分組聚合的函數(shù):
aggregate(value~class,data,fun)
#表達(dá)式左側(cè)是要聚合的目標(biāo)度量,右側(cè)是分組依據(jù),緊接著是數(shù)據(jù)框名稱,最后是聚合函數(shù)。
aggregate(Sepal.Length~Species,iris,mean)
aggregate(Sepal.Length~Species,iris,sum)
library(dplyr)
使用group_by函數(shù)結(jié)合summarize可以方便的完成分組聚合功能。
iris%>%group_by(Species)%>%summarize(means=mean(Sepal.Length))
iris%>%group_by(Species)%>%summarize(sums=sum(Sepal.Length))
R語言中的分組聚合如果使用矢量函數(shù)來進(jìn)行操作,會(huì)大大提升其執(zhí)行效率:
tapply(iris$Sepal.Length,iris$Species,mean)
tapply(iris$Sepal.Length,iris$Species,sum)
tapply(X, INDEX, FUN = NULL, …, simplify = TRUE)
tapply是一個(gè)快捷的分組聚合函數(shù),其參數(shù)簡單易懂,通過提供一個(gè)度量,一個(gè)分類別字段,一個(gè)聚合函數(shù)即可完成簡答的數(shù)據(jù)聚合功能。
library(plyr)
ddply(iris,.(Species),summarize,means=mean(Sepal.Length))
ddply(iris,.(Species),summarize,means=sum(Sepal.Length))
ddply(.data, .variables, .fun =) #一般只需提供數(shù)據(jù)框,帶聚合分類字段,以及最終的聚合函數(shù)與聚合變量公式。它的用法與內(nèi)置的tpply用法如出一轍。
----------
Python:
----------
import pandas as pd
import numpy as np
Python中長用到的數(shù)據(jù)聚合工具主要包括groupby函數(shù),agg函數(shù)以及povit_table等。
groupby
agg
povit_table
iris=pd.read_csv("C:/Users/RAINDU/Desktop/iris.csv",sep=",")
iris.head()
iris.describe()
使用pandas中的groupby方法可以很快捷的進(jìn)行分組數(shù)據(jù)聚合。
iris.groupby('Species')['Sepal.Length'].mean()
iris.groupby('Species')['Sepal.Length'].sum()
iris.groupby('Species')['Sepal.Length'].agg([len,np.sum,np.mean])
iris.groupby('Species')['Sepal.Length'].agg({'count':len,'sum':np.sum,'mean':np.mean})
#對輸出進(jìn)行自定義命名:
只聚合一個(gè)變量可以直接使用對應(yīng)聚合函數(shù),需要聚合多個(gè)變量則可以 借助agg函數(shù)完成。
pd.pivot_table(iris,index=["Species"],values=["Sepal.Length"],aggfunc=[len,np.sum,np.mean],margins=False)
“R語言與Python數(shù)據(jù)聚合功能的用法介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。