python pandas的map函数使用

 更新时间:2024年06月29日 09:17:39   作者:yuanzhoulvpi  
这篇文章主要介绍了python 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列找到对应的名字。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

参考链接:

相关文章

  • python 打印对象的所有属性值的方法

    python 打印对象的所有属性值的方法

    下面小编就为大家带来一篇python 打印对象的所有属性值的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Python进阶之全面解读高级特性之切片

    Python进阶之全面解读高级特性之切片

    切片的作用就是截取序列对象,然而,对于非序列对象,我们是否有办法做到切片操作呢?在使用切片的过程中,有什么要点值得重视,又有什么底层原理值得关注呢?本文将主要跟大家一起来探讨这些内容
    2019-02-02
  • python,Django实现的淘宝客登录功能示例

    python,Django实现的淘宝客登录功能示例

    这篇文章主要介绍了python,Django实现的淘宝客登录功能,结合实例形式分析了Django框架基于淘宝接口的登录功能相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • 用python自动生成日历

    用python自动生成日历

    这篇文章主要介绍了如何用python自动生成日历,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • python使用分治法实现求解最大值的方法

    python使用分治法实现求解最大值的方法

    这篇文章主要介绍了python使用分治法实现求解最大值的方法,较为详细的分析了分治法的原理与实现求最大值的方法,需要的朋友可以参考下
    2015-05-05
  • PyTorch计算损失函数对模型参数的Hessian矩阵示例

    PyTorch计算损失函数对模型参数的Hessian矩阵示例

    这篇文章主要为大家介绍了PyTorch计算损失函数对模型参数的Hessian矩阵的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python如何使用OS模块调用cmd

    Python如何使用OS模块调用cmd

    这篇文章主要介绍了Python如何使用OS模块调用 cmd,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Django框架之路由用法

    Django框架之路由用法

    这篇文章介绍了Django框架之路由的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 利用Python多线程实现图片下载器

    利用Python多线程实现图片下载器

    这篇文章主要介绍了利用Python多线程制作的图片下载器的相关代码,文中展示的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
    2022-03-03
  • Python设计模式之命令模式原理与用法实例分析

    Python设计模式之命令模式原理与用法实例分析

    这篇文章主要介绍了Python设计模式之命令模式,结合具体实例形式分析了Python命令模式相关概念、原理、定义及使用方法,需要的朋友可以参考下
    2019-01-01

最新评论