groupby,agg,cut,merge,apply用法筆記


GroupBy針對DataFrame將其按照某個准則分組

1.常見的調用形式為:

df['a'].GroupyBy(df['b'])

df.GroupyBy(df['b','c'])#層次化的索引

df.GroupyBy(['b','c'])#直接將columns名稱作為索引鍵進行索引

以上可理解為將Series作為分組鍵,y此外還可以將任何適當長度的array作為分組鍵,目前未嘗試過

2.常用的方法:

df.GroupyBy(df['b']).mean()#非數值列數據直接跳過
df.GroupyBy(df['b']).size()#返回一個分組的大小的Series(每個值對應的是當前鍵元素的個數)

df.GroupyBy(df['b']).std()

3.舉例GroupyBy的應用:

如給出的csv文件中columns包含['City','State','Population'],讓求出每個州所有城市人口的平均值,此時就可以用

df['population'].GroupBy(['State']).mean()

 

注:GroupyBy函數說明在http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html#pandas.DataFrame.groupby

 agg用於聚合運算

1.agg的函數如其名為聚合作用,他接在被groupby函數后的類型使用。

2.幾種常見的用法為

#求自己定義的函數
df.groupby(['a']).agg(func)#這個函數是我自己定義過的
#同理也可
df.groupby(['a']).agg(‘mean’)
#同時求幾個函數
df.groupby(['a']).agg(['min','max',func])

#以上為常用情況
#如果想換聚合函數的標題
df.groupby([('foo',yongbut'mean'),('bar',func)])
#如果想對不同的列用不同的聚合方式
df.groupby(['a']).agg({'a':'sum','b':['min','max','std']})

函數說明:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.DataFrameGroupBy.agg.html

 Apply函數-可針對DataFrame和Series操作,返回是DataFrame和Series

1.理解:apply將他應用的對象拆分到小一級,然后讓拆分后的每個子部分去實施apply括號內的函數操作,再把操作后的結果合在一起

2.apply可以說是非常常用,這里只說一個基本的用例,連帶理解了lambda的用法

energy['Energy Supply']=energy['Energy Supply'].apply(lambda x : x*1000000)

 

注:Apply函數說明 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html#pandas.DataFrame.apply

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM