這篇文章主要介紹了Pandas的map,apply,applymap怎么使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Pandas的map,apply,applymap怎么使用文章都會有所收獲,下面我們一起來看看吧。
通過一個模擬的數據來說明3個函數的使用,在這個例子中學會了如何生成各種模擬數據。數據如下:
import pandas as pd
import numpy as np
boolean = [True, False]
gender = ["男","女"]
color = ["white","black","red"]
# 好好學習如何生成模擬數據:非常棒的例子
# 學會使用random模塊中的randint方法
df = pd.DataFrame({"height":np.random.randint(160,190,100),
"weight":np.random.randint(60,90,100),
"smoker":[boolean[x] for x in np.random.randint(0,2,100)],
"gender":[gender[x] for x in np.random.randint(0,2,100)],
"age":np.random.randint(20,60,100),
"color":[color[x] for x in np.random.randint(0,len(color),100)]
})
df.head()
map() 會根據提供的函數對指定序列做映射。
第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
map(function, iterable)

將gender中男變成1,女變成0
# 方式1:通過字典映射實現
dic = {"男":1, "女":0} # 通過字典映射
df1 = df.copy() # 副本,不破壞原來的數據df
df1["gender"] = df1["gender"].map(dic)
df1
# 方式2:通過函數實現
def map_gender(x):
gender = 1 if x == "男" else 0
return gender
df2 = df.copy()
# 將df["gender"]這個S型數據中的每個數值傳進去
df2["gender"] = df2["gender"].map(map_gender)
df2
apply方法的作用原理和 map方法類似,區別在于 apply能夠傳入功能更為復雜的函數,可以說 apply是 map的高級版
pandas 的 apply() 函數可以作用于 Series 或者整個 DataFrame,功能也是自動遍歷整個 Series 或者 DataFrame, 對每一個元素運行指定的函數。
在 DataFrame對象的大多數方法中,都會有 axis這個參數,它控制了你指定的操作是沿著0軸還是1軸進行。 axis=0代表操作對 列columns進行, axis=1代表操作對 行row進行
上面的數據中將age字段的值都減去3,即加上-3
def apply_age(x,bias): return x + bias df4 = df.copy() # df4["age"]當做第一個值傳給apply_age函數,args是第二個參數 df4["age"] = df4["age"].apply(apply_age,args=(-3,))

計算BMI指數
# 實現計算BMI指數:體重/身高的平方(kg/m^2) def BMI(x): weight = x["weight"] height = x["height"] / 100 BMI = weight / (height **2) return BMI df5 = df.copy() df5["BMI"] = df5.apply(BMI,axis=1) # df5現在就相當于BMI函數中的參數x;axis=1表示在列上操作 df5

DataFrame型數據的 apply操作總結:
當 axis=0時,對 每列columns執行指定函數;當 axis=1時,對 每行row執行指定函數。
無論 axis=0還是 axis=1,其傳入指定函數的默認形式均為 Series,可以通過設置 raw=True傳入 numpy數組。
對每個Series執行結果后,會將結果整合在一起返回(若想有返回值,定義函數時需要 return相應的值)
通過apply方法實現上面的性別轉換需求。apply方法中傳進來的第一個參數一定是函數

applymap函數用于對DF型數據中的每個元素執行相同的函數操作,比如下面的加1:


關于“Pandas的map,apply,applymap怎么使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Pandas的map,apply,applymap怎么使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。