.agg(), .map(), .apply()函數的用法?
想請問.agg(), .map(), .apply()這三種看起來都是丟函數進去,可以簡單解釋一下有什麼相異處以及使用上的時機?
回答列表
-
2019/05/20 下午 05:05陳明佑 (Ming You Chen)贊同數:1不贊同數:0留言數:1
三者之間, 的確都可以丟函數進去,
不過有一點小區別, 因此應用場景有點不同
.agg()
可以搭配一些 column 運算 (例如 : mean, median, max, std ...)
所以通常是配合 groupby, 做一些群聚運算
.apply()
應用範圍最廣, 可以對整個 DataFrame, 或者單獨的 row 或 column 進行操作
(須指定 axis 變數)
.map()
只能對 Series (單行的 DataFrame) 操作, 有特殊的寫法但較複雜
.applymap()
對整個 DataFrame 的資料進行操作
我自己常常使用 .agg() 搭配 groupby
至於特徵工程時, .map() 與 .apply() 沒有特定愛用哪個
因為都是對 Series 做比較多, 很少需要對 row 做運算的
.applymap() 倒是沒用過, 因為這種地圖砲等級的運算我只想到 fillna
但已經有 fillna 了, 就不需要用到 applymap 啦
-
2019/05/21 上午 10:07張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
DataFrame.apply
operates on entire rows or columns at a time.=> apply 可以對整個 DataFrame 操作,因為它將資料視為一個矩陣。
DataFrame.applymap
, andSeries.map
operate on one element at time.=> applymap 或 map 是延伸自 series 的操作,一次只能操作一個維度,對象是向量。