<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
實際工作中,我們在利用 pandas進行資料處理的時候,經常會對資料框中的單行、多行(列也適用)甚至是整個資料進行某種相同方式的處理,比如將資料中的 sex欄位將 男替換成1,女替換成0。
在這個時候,很容易想到的是 for迴圈。用 for迴圈是一種很簡單、直接的方式,但是執行效率很低。本文中介紹了 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操作總結:
通過apply方法實現上面的性別轉換需求。apply方法中傳進來的第一個引數一定是函數
applymap函數用於對DF型資料中的每個元素執行相同的函數操作,比如下面的加1:
到此這篇關於詳解Pandas的三大利器(map,apply,applymap)的文章就介紹到這了,更多相關Pandas map apply applymap內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45