pandas基本功能3

函數應用和映射

lambda用法:

在上面的例子中,lambda作為一個表達式,定義了一個匿名函數,上例的代碼x為入口參數,x+1為函數體。

DataFrame的apply方法可以將函數應用到由各列或行所形成的一維數組上:

傳遞給apply的函數可以返回由多個值組成的Series:

使用applymap格式化字元串:

排序和排名

根據條件對數據集排序(sorting)是一種重要的內置運算。要對行或列索引進行排序(按字典順序),可使用sort_index方法,它將返回一個已排序的新對象:

對於DataFrame,可以根據任意一個軸上的索引進行排序:

Series 的sort_index(ascending=True)方法可以對 index 進行排序操作,ascending 參數用於控制升序或降序,默認為升序:

若要按值對 Series 進行排序,當使用 .order(na_last=True, ascending=True, kind=mergesort) 方法,任何缺失值默認都會被放到 Series 的末尾。

在DataFrame上,根據一個或多個列中的值進行排序,可以將一個或多個列的名字傳遞給by:

要根據多個列進行排序,傳入名稱的列表即可:

排名(Series.rank(method=average, ascending=True))的作用與排序的不同之處在於,他會把對象的 values 替換成名次(從 1 到 n)。這時唯一的問題在於如何處理平級項,方法里的 method 參數就是起這個作用的,他有四個值可選:average, min, max, first。

其中rank函數返回從小到大排序的下標,對於平級的數,rank是通過「為各組分配一個平均排名」的方式破壞平級關係,如下:

根據在原數據中出現的順序給出排名:

分別按降序和升序進行排名:

下面列出用於破壞平級關係的method選項:

DataFrame可以在行或列上計算排名:


推薦閱讀:

R語言中單引號和雙引號,各種括弧的使用有什麼需要注意的地方?
寫過的代碼忘了怎麼辦?------Code復用
UFO長啥樣?--Python數據分析來告訴你
如何解決BI反應速度太慢,無法快速做出決策?
數據分析和挖掘有哪些公開的數據來源?

TAG:Python | 数据分析 |