Pandas中的寶藏函數(shù)-applymap
applymap的用法比較簡(jiǎn)單,會(huì)對(duì)DataFrame中的每個(gè)單元格執(zhí)行指定函數(shù)的操作,雖然用途不如apply廣泛,但在某些場(chǎng)合下還是非常有用的。
applymap()是與map()方法相對(duì)應(yīng)的專(zhuān)屬于DataFrame對(duì)象的方法,類(lèi)似map()方法傳入函數(shù)、字典等,傳入對(duì)應(yīng)的輸出結(jié)果。
不同的是applymap()將傳入的函數(shù)等作用于整個(gè)數(shù)據(jù)框中每一個(gè)位置的元素,因此其返回結(jié)果的形狀與原數(shù)據(jù)框一致。
關(guān)聯(lián)閱讀:
語(yǔ) 法:
DataFrame.applymap(func, na_action=None, **kwargs)
參 數(shù):
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.
官 網(wǎng):https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.applymap.html
先構(gòu)造一個(gè)數(shù)據(jù)集
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 age0 Jack F 251 Alice M 342 Lily F 493 Mshis F 424 Gdli M 285 Agosh F 236 Filu M 457 Mack M 218 Lucy F 349 Pony F 29
我們把姓名數(shù)據(jù)中所有的字符型數(shù)據(jù)消息小寫(xiě)化處理,對(duì)其他類(lèi)型則原樣返回:
def to_lower(x):if isinstance(x,str):return x.lower()else:return xdata.applymap(to_lower)name gender age0 jack f 251 alice m 342 lily f 493 mshis f 424 gdli m 285 agosh f 236 filu m 457 mack m 218 lucy f 349 pony f 29
其形狀沒(méi)有變化,配合applymap(),可以簡(jiǎn)潔地完成很多數(shù)據(jù)處理操作,特別是對(duì)于全部數(shù)據(jù)都要進(jìn)行的統(tǒng)一處理,非常方便。
把一個(gè)數(shù)組轉(zhuǎn)換成兩位數(shù)的百分百形式
import numpy as npda_rn = pd.DataFrame(:np.random.randn(4),:np.random.randn(4)})da_rnA B0 -0.166162 -0.0598241 0.530865 -0.9305232 -1.215844 -0.1422733 0.347695 0.308077x: "{:.2%}".format(x))A B0 -16.62% -5.98%1 53.09% -93.05%2 -121.58% -14.23%3 34.77% 30.81%
··· END ···
長(zhǎng)按加群,一起交流學(xué)習(xí)
↓掃描關(guān)注本號(hào)↓
