Pandas的排序和排名(Series, DataFrame) + groupby

根據條件對數據集排序(sorting)也是一種重要的內置運算。要對行或列索引進行排序(按字典順序), 數組

可以使用sort_index 方法, 它將返回一個已排序的新對象:app

 

而DataFrame, 則能夠根據任意一個軸上的索引進行排序:spa

降序

數據默認是按照升序排序的, 但也能夠安裝降序排序3d

 

 

 按值排序

 

若是有缺失值呢code

 求惟一值排序和頻率排序

 

 Dataframe指定某列的值進行排序,by選項

 

 

那麼若是多個呢?對象

 

排名

排名(ranking ) 跟排序關係密切, 且它會增設一個排名值(從1開始, 一直到數組中有效數據的數量)。blog

它跟numpy.argsort產生的間接拍下索引差很少, 只不過它能夠根據某種規則破壞平級關係。接下來介紹Series和Dataframe 的rank方法。排序

默認狀況下, rank是經過」爲各組分配一個平均排名「的方式破壞平級關係的。索引

 降序pandas

 

 

 

 

 

 

 groupby方法

import pandas as pd
df = pd.DataFrame({'性別' : ['', '', '', '',
                              '', '', '', ''],
                       '成績' : ['優秀', '優秀', '及格', '',
                              '及格', '及格', '優秀', ''],
                       '年齡' : [15,14,15,12,13,14,15,16]})
GroupBy=df.groupby("性別")

 

GroupBy.iter() 


GroupBy對象是一個迭代對象,每次迭代結果是一個元組,元組的第一個元素是該組的名稱(就是groupby的列的元素名稱),第二個元素是該組的具體信息,是一個數據框,索引是之前的數據框的總索引

for name,group in GroupBy:
    print(name)
    print(group)
女
   年齡 性別  成績
1  14  女  優秀
3  12  女   差
5  14  女  及格
男
   年齡 性別  成績
0  15  男  優秀
2  15  男  及格
4  13  男  及格
6  15  男  優秀
7  16  男   差

groupby還有其餘子方法,須要的話本身在百度吧 

 

來個例子, groupby + apply + sortValues的例子

data.groupby('customer_id')['repayment_date'].apply(lambda x:x.sort_values(ascending=False)).reset_index()
相關文章
相關標籤/搜索