【已解决】如何获取到DF数据里最新的调薪时间,就是薪资最高且时间最早?

简介: 【已解决】如何获取到DF数据里最新的调薪时间,就是薪资最高且时间最早?
问题说明:

前几天在Python最强王者交流群【群除我佬】问了一个Pandas处理的问题,这里拿出来给大家分享下。

看上去不太好理解,其实说白了,就是在工资最高里,再找时间最早的。

换句话说就是,这三个人,每个人找工资最高,然后在这个范围里找时间最早  就是他的调薪时间。

解决方法:

这里我们提供一种解决方案:

import pandas as pd
 
data = {'name': ['陈六', '吴三', '吴三', '陈六', '钱十', '陈六', '吴五', '吴五', '陈六', '吴八', '钱十', '陈六'],
        'date': ['2024-01-04', '2024-01-13', '2024-01-29', '2024-01-12', '2024-01-20', '2024-01-19', '2024-01-27',
                 '2024-01-20', '2024-01-09', '2024-01-08', '2024-01-14', '2024-01-28'],
        'salary': [6026, 5352, 5791, 9567, 9728, 6160, 9015, 9508, 9253, 9570, 8690, 7395]}
 
df = pd.DataFrame(data)
print(df.sort_values(['name', 'salary', 'date'], ascending=[True, False, True]).groupby(['name']).head(1))
结果展示:

代码说明:
print(df.sort_values(['name', 'salary', 'date'], ascending=[True, False, True])

排序 DataFrame:

  • df.sort_values([...]): 对 DataFrame df 进行排序。
  • ['name', 'salary', 'date']: 表示按 namesalarydate 三列进行排序。
  • ascending=[True, False, True]:
  • name 列进行升序排列(即 A 到 Z)。
  • salary 列进行降序排列(即从高到低)。
  • date 列进行升序排列(即从早到晚)。

经过这一步,DataFrame 将首先按姓名升序排列,在同一姓名下,按薪资降序排列;如果薪资相同,则按日期升序排列。

.groupby(['name']).head(1)
  • 分组并选取第一条记录:
  • .groupby(['name']): 根据 name 列将 DataFrame 分组,这会将具有相同名字的行聚集在一起。
  • .head(1): 从每个分组中提取前一行。由于之前已经按薪资降序排列,因此每个姓名组的第一行将是该姓名下薪资最高的记录。
  • 打印结果: 最终代码会输出一个 DataFrame,其中每个员工姓名只会保留薪资最高的一条记录,若有多个相同薪资,则选择日期最早的记录。
概要总结:
  • 这段代码的主要目的是从 DataFrame 中提取每个员工薪资最高且在先的记录。
  • 首先按姓名和薪资进行排序,然后分组并获取每个员工的最高薪资记录。
相关文章
|
4月前
|
存储 SQL 关系型数据库
RDS DuckDB技术解析一:当 MySQL遇见列式存储引擎
RDS MySQL DuckDB分析实例以​列式存储与向量化计算​为核心,实现​复杂分析查询性能百倍跃升​,为企业在海量数据规模场景下提供​实时分析能力​,加速企业数据驱动型决策效能。​​
|
弹性计算 NoSQL 安全
如何在阿里云服务器上安装Redis数据库
如何在阿里云服务器上安装Redis数据库
10797 2
|
开发者 人工智能 自然语言处理
欢迎使用通义灵码
灵码使用指南!一键收藏。
144606 31
|
存储 人工智能 数据处理
阿里云CTO周靖人:全面投入升级AI大基建
9月19日,在2024杭州云栖大会上,阿里云CTO周靖人表示,阿里云正在围绕AI时代,树立一个AI基础设施的新标准,全面升级从服务器到计算、存储、网络、数据处理、模型训练和推理平台的技术架构体系,让数据中心成为一台超级计算机,为每个AI和应用提供高性能、高效的算力服务。
23399 15
|
SQL 存储 分布式计算
Linux退出Hive命令
【8月更文挑战第14天】
286 1
|
人工智能 架构师 IDE
阿里云通义灵码重磅升级,能自主修BUG、开发应用的AI程序员来了
通义灵码AI编程能力再进化,说几句话就能开发网页
23550 9
|
消息中间件 存储 供应链
数据仓库介绍与实时数仓案例
1.数据仓库简介 数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
44116 86
|
Java 编译器
Java中可变长参数的使用代码和方法
Java中可变长参数的使用代码和方法
178 7
|
Ubuntu Linux 网络安全
ubuntu linux通过rclone 挂载onedrive 到本地磁盘
ubuntu linux通过rclone 挂载onedrive 到本地磁盘
807 2
|
人工智能 JSON 监控
探索Viper-适用于GoLang的完整配置解决方案
探索Viper-适用于GoLang的完整配置解决方案

热门文章

最新文章