python tips系列1——pandas的map函数
2021/12/23 11:09:09
本文主要是介绍python tips系列1——pandas的map函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
大家在使用pandas的时候,大部分可能就是一些匹配关系,主要也就是使用merge函数之类的。但是有时候在匹配的时候,并不需要使用merge的函数,使用别的函数也是可以做到,今天也就是给大家分享一个找BOSS的代码。
问题
有这样的一个数据,这个数据的第一列是员工的ID,第二列是员工的Name,第三列是这个员工所属的直接部门,第四列代表这个员工所属的上级部门。那么我要想找到员工的boss应该怎么办?
数据代码如下:
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做数据合并的操作。也就是所谓的我自己合并我自己。这里提供两个方案,使用pandas的map函数或者replace函数就可以优雅的解决我们的难题,代码也是超级简单。
1 使用map函数
df['Boss'] = df['一级部门'].map(df.set_index('二级部门')['Name']) df
2 使用replace函数
# 重置df数据 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函数 df['Boss'] = df['一级部门'].replace(df.set_index('二级部门')['Name']) df
函数介绍:
map函数介绍:
根据输入关系映射对应Series的值。说白了,map函数就是将一列数据(DataFrame的一列 或者一个pd.Series)按照一个参考数据(Dict或者是pd.Series或者是一个函数)做数值的映射关系。
下面就是创建了一个df,这个df是只含有一个id列。然后创建一个索引叫index1,这个索引的值分别对应a, b, c,索引的键分别是100,101,102。
使用map函数就可以帮助df的id列找到对应的名字。
参考链接:
- https://stackoverflow.com/questions/70456586/pandas-column-from-match-without-merge
- https://pandas.pydata.org/docs/reference/api/pandas.Series.map.html
写在最后
后面将持续分享大家遇到的问题以及解决方案,也欢迎广大读者加入我们的社区,和我们分享你遇到的问题难点~
加入方式:公众号【world of statistics】右下角加上作者
这篇关于python tips系列1——pandas的map函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门