# yyds干货盘点 # 这个df数据怎么才能获取到最新的调薪时间,就是薪资最高且时间最早?

时间:2021-02-03 00:39:55

大家好,我是皮皮。

一、前言

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

# yyds干货盘点 # 这个df数据怎么才能获取到最新的调薪时间,就是薪资最高且时间最早?

看上去不太好理解,其实说白了,就是在工资最高里,再找时间最早的。换句话说就是,这三个人,每个人找工资最高,然后在这个范围里找时间最早  就是他的调薪时间。

二、实现过程

这里一共有两个方法,当然应该还有更多,一起来看看吧。【隔壁????山楂】给了一个代码,如下所示:

​df.sort_values(['姓名', '工资', '月份'], ascending=[True, False, True]).groupby(['姓名']).head(1)​

# yyds干货盘点 # 这个df数据怎么才能获取到最新的调薪时间,就是薪资最高且时间最早?

简直太秀了,顺利地解决了粉丝的问题。

第二个方法是【༺࿈黑科技·鼓包࿈༻】提供的,代码如下:​​df.iloc[df.groupby(['姓名']).apply(lambda x: x['工资'].idxmax())]​

# yyds干货盘点 # 这个df数据怎么才能获取到最新的调薪时间,就是薪资最高且时间最早?

思路还是不错的,看上去也有点难以理解。美中不足的是这个代码用在粉丝的当前数据上,是不能生效的,用在其他规整的数据上是可以奏效的。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个​​Pandas​​处理数据的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【群除我佬】提问,感谢【隔壁????山楂】、【吴超建】、【郑煜哲·Xiaopang】、【༺࿈黑科技·鼓包࿈༻】给出的思路和代码解析,感谢【冯诚】、【eric】等人参与学习交流。