python pandas的map函數(shù)使用
前言
大家在使用pandas的時候,大部分可能就是一些匹配關(guān)系,主要也就是使用merge函數(shù)之類的。
但是有時候在匹配的時候,并不需要使用merge的函數(shù),使用別的函數(shù)也是可以做到,今天也就是給大家分享一個找BOSS的代碼。
問題
有這樣的一個數(shù)據(jù),這個數(shù)據(jù)的第一列是員工的ID,第二列是員工的Name,第三列是這個員工所屬的直接部門,第四列代表這個員工所屬的上級部門。
那么我要想找到員工的boss應(yīng)該怎么辦?
數(shù)據(jù)代碼如下:
import pandas as pd import numpy as np df = pd.DataFrame(np.array([[1000, 'Jerry', 'BR1','BR1'], [1001, 'Sal', 'BR2', 'BR1'], [1002, 'Buck', 'BR3', 'BR2'], [1003, 'Perry','BR4','BR1']]), columns=['ID', 'Name', '二級部門', '一級部門']) df
解決方案
很多人可能想到,這樣的問題就很簡單了,直接使用merge做數(shù)據(jù)合并的操作。也就是所謂的我自己合并我自己。
這里提供兩個方案,使用pandas的map函數(shù)或者replace函數(shù)就可以優(yōu)雅的解決我們的難題,代碼也是超級簡單。
1 使用map函數(shù)
df['Boss'] = df['一級部門'].map(df.set_index('二級部門')['Name']) df
2 使用replace函數(shù)
# 重置df數(shù)據(jù) df = pd.DataFrame(np.array([[1000, 'Jerry', 'BR1','BR1'], [1001, 'Sal', 'BR2', 'BR1'], [1002, 'Buck', 'BR3', 'BR2'], [1003, 'Perry','BR4','BR1']]), columns=['ID', 'Name', '二級部門', '一級部門']) # 使用repalce函數(shù) df['Boss'] = df['一級部門'].replace(df.set_index('二級部門')['Name']) df
函數(shù)介紹
map函數(shù)介紹
根據(jù)輸入關(guān)系映射對應(yīng)Series的值。
說白了,map函數(shù)就是將一列數(shù)據(jù)(DataFrame的一列 或者一個pd.Series)按照一個參考數(shù)據(jù)(Dict或者是pd.Series或者是一個函數(shù))做數(shù)值的映射關(guān)系。
下面就是創(chuàng)建了一個df,這個df是只含有一個id列。
然后創(chuàng)建一個索引叫index1,這個索引的值分別對應(yīng)a, b, c,索引的鍵分別是100,101,102。
使用map函數(shù)就可以幫助df的id列找到對應(yīng)的名字。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
參考鏈接:
相關(guān)文章
python,Django實現(xiàn)的淘寶客登錄功能示例
這篇文章主要介紹了python,Django實現(xiàn)的淘寶客登錄功能,結(jié)合實例形式分析了Django框架基于淘寶接口的登錄功能相關(guān)操作技巧,需要的朋友可以參考下2019-06-06PyTorch計算損失函數(shù)對模型參數(shù)的Hessian矩陣示例
這篇文章主要為大家介紹了PyTorch計算損失函數(shù)對模型參數(shù)的Hessian矩陣的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05