【Python】Pandas中的宝藏函数-applymap
applymap的用法比較簡單,會對DataFrame中的每個單元格執行指定函數的操作,雖然用途不如apply廣泛,但在某些場合下還是非常有用的。
?
applymap()是與map()方法相對應的專屬于DataFrame對象的方法,類似map()方法傳入函數、字典等,傳入對應的輸出結果。
?
不同的是applymap()將傳入的函數等作用于整個數據框中每一個位置的元素,因此其返回結果的形狀與原數據框一致。
關聯閱讀:
Pandas中的寶藏函數-map
Pandas中的寶藏函數-apply
?
語 法:
DataFrame.applymap(func, na_action=None, **kwargs)參 數:
func :Python function, returns a single value from a single value.
na_action{None, ‘ignore’}, default None,If ‘ignore’, propagate NaN values, without passing them to func.
**kwargs:Additional keyword arguments to pass as keywords arguments to?func.
?
返 回:DataFrame Transformed DataFrame.
官 網:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.applymap.html
?
先構造一個數據集
data = pd.DataFrame( {"name":['Jack', 'Alice', 'Lily', 'Mshis', 'Gdli', 'Agosh', 'Filu', 'Mack', 'Lucy', 'Pony'], "gender":['F', 'M', 'F', 'F', 'M', 'F', 'M', 'M', 'F', 'F'], "age":[25, 34, 49, 42, 28, 23, 45, 21, 34, 29]}) dataname gender age 0 Jack F 25 1 Alice M 34 2 Lily F 49 3 Mshis F 42 4 Gdli M 28 5 Agosh F 23 6 Filu M 45 7 Mack M 21 8 Lucy F 34 9 Pony F 29?
我們把姓名數據中所有的字符型數據消息小寫化處理,對其他類型則原樣返回:
def to_lower(x):if isinstance(x,str):return x.lower()else:return x data.applymap(to_lower)name gender age 0 jack f 25 1 alice m 34 2 lily f 49 3 mshis f 42 4 gdli m 28 5 agosh f 23 6 filu m 45 7 mack m 21 8 lucy f 34 9 pony f 29?
其形狀沒有變化,配合applymap(),可以簡潔地完成很多數據處理操作,特別是對于全部數據都要進行的統一處理,非常方便。
?
把一個數組轉換成兩位數的百分百形式
import numpy as np da_rn = pd.DataFrame({'A':np.random.randn(4),'B':np.random.randn(4)}) da_rnA B 0 -0.166162 -0.059824 1 0.530865 -0.930523 2 -1.215844 -0.142273 3 0.347695 0.308077da_rn.applymap(lambda x: "{:.2%}".format(x))A B 0 -16.62% -5.98% 1 53.09% -93.05% 2 -121.58% -14.23% 3 34.77% 30.81% ···? END? ··· 往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》課件合集 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【Python】Pandas中的宝藏函数-applymap的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统盘怎么重装系统
- 下一篇: websocket python爬虫_p