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反應速度太慢,無法快速做出決策?
※數據分析和挖掘有哪些公開的數據來源?