pandas中的map()、apply()、applymap()函數的區別


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

1、map

  map()是Series對象的一個函數,DataFrame中沒有map(),map()的功能是將一個自定義函數作用於Series對象的每個元素。

eg:

1 frame = pd.DataFrame({
               'key1':['a','b','c','d'],
               'key2':['one','two','three','four'],
               'data1':np.arange(4),
               'data2':np.arange(5,9)
              })
2 df

現在使用map()函數來將data1這一列的數據改為保留三位小數顯示

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

運行結果:

2、apply

  apply()函數的功能是將一個自定義函數作用於DataFrame的行或者列

eg:現在使用apply()對data1和data2相加

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

運行結果:

df.loc['total'] = df[['data1','data2']].apply(lambda x : x.sum(), axis = 0)  #注意索引行必須用loc

3、applymap

  applymap()函數的功能是將自定義函數作用於DataFrame的所有元素

eg:現在將DataFrame的所有元素前面加字符#

1 def add(n): 2     return '#' + str(n) 3 df.applymap(add)

運行結果:

 容易發現,DataFrame對象的一行或者一列可以看成一個Series對象,因此也適用map()函數,幾個對象之間可以互相轉化,注意靈活使用。


免責聲明!

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



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