Python學習筆記:apply、map、applymap函式區別
阿新 • • 發佈:2021-09-29
一、總結
- apply —— 應用在 dataFrame 上,用於對 row 或者 column 進行計算
- applymap —— 應用在 dataFrame 上,元素級別的操作
- map —— python 系統自帶函式,應用在 series 上, 元素級別的操作
二、實操對比
構建測試資料框:
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randint(0, 10, (4, 3)), columns=list('abc'), index=range(4)) df ''' a b c 0 5 4 8 1 7 5 2 2 1 2 2 3 1 6 2 '''
- apply 作用在 dataframe 上的一行或者一列上
# 預設按列操作 axis=0
# 求每列的最大值、最小值之差
df.apply(lambda x: x.max() - x.min()) # axis=0
# 求每行的最大值、最小值之差
df.apply(lambda x: x.max() - x.min(), axis=1)
- applymap 作用在 dataframe 的每一個元素上
# 偶數放大10倍
df.applymap(lambda x: x*10 if x%2 == 0 else x)
- map 函式作用在 series 上的每一個元素
# 單獨的序列 df['b'].map(lambda x: 1 if x%2 == 0 else 0)
總的來說,要對資料進行應用函式操作時,考慮資料結構是 DataFrame
還是 Series
,再考慮是要按行執行還是按列執行,進行函式的選擇。