Pandas中的map(), apply()和applymap()


它們的區別在於應用的對象不同。

1、map()

map() 是一個Series的函數,DataFrame結構中沒有map()。map()將一個自定義函數應用於Series結構中的每個元素(elements)。

例子:

df = pd.DataFrame({'key1' : ['a', 'a', 'b', 'b', 'a'],
                   'key2' : ['one', 'two', 'one', 'two', 'one'],
                   'data1' : np.arange(5),
                   'data2' : np.arange(5,10)})
df


我們現在用map來對列data1改成保留小數點后三位:

df['data1'] = df['data1'].map(lambda x : "%.3f"%x) 
df

你也可以用map把key1的a改成c,b改成d

df['key1'] = df['key1'].map({'a':'c',"b":"d"})
df


2、apply()

apply()將一個函數作用於DataFrame中的每個行或者列

例子:
我們現在用apply來對列data1,data2進行相加

#axis =1 ,作用於行. 
#axis =0,作用於列,默認為0
df['total'] = df[['data1','data2']].apply(lambda x : x.sum(),axis=1 ) 
df

df.loc['total'] = df[['data1','data2']].apply(lambda x : x.sum(),axis=0 )
df


3、applymap()

將函數做用於DataFrame中的所有元素(elements)

例子:
例如,在所有元素前面加個字符A

def  addA(x):
    return "A" + str(x )
df.applymap(addA)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM