溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

R語言與Python數(shù)據(jù)聚合功能的用法介紹

發(fā)布時(shí)間:2021-08-10 16:37:31 來源:億速云 閱讀:449 作者:chen 欄目:大數(shù)據(jù)

本篇內(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

R語言與Python數(shù)據(jù)聚合功能的用法介紹

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)))

R語言與Python數(shù)據(jù)聚合功能的用法介紹

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)

R語言與Python數(shù)據(jù)聚合功能的用法介紹

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語言與Python數(shù)據(jù)聚合功能的用法介紹

R語言中的分組聚合如果使用矢量函數(shù)來進(jìn)行操作,會(huì)大大提升其執(zhí)行效率:

tapply(iris$Sepal.Length,iris$Species,mean)

tapply(iris$Sepal.Length,iris$Species,sum)

R語言與Python數(shù)據(jù)聚合功能的用法介紹

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))

R語言與Python數(shù)據(jù)聚合功能的用法介紹

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()

R語言與Python數(shù)據(jù)聚合功能的用法介紹

使用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)行自定義命名:

R語言與Python數(shù)據(jù)聚合功能的用法介紹

R語言與Python數(shù)據(jù)聚合功能的用法介紹

只聚合一個(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ù)聚合功能的用法介紹

“R語言與Python數(shù)據(jù)聚合功能的用法介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(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)容。

AI