python pandas groupby第一次约会

我正在查看数据框中的一组临时员工.我正在使用熊猫,我需要为列表中的每个人获得第一个’apnt_ymd’日期.所以对格林来说,我需要2011-04-10.对于LEMERISE,我需要2011-05-08.

In:name = temphires[['ssno','nm_emp_lst','nm_emp_fst','apnt_ymd']].sort('ssno')
   name.drop_duplicates(['apnt_ymd'])

ssno    nm_emp_lst  nm_emp_fst  apnt_ymd
299769   123456789   GREENE  ALTON  2014-05-04
192323   123456789   GREENE  ALTON  2013-04-07
192324   123456789   GREENE  ALTON  2012-04-08
102872   123456789   GREENE  ALTON  2011-04-10
175701   987654321   dubE    JEFFREY    2013-04-21
177583   777888999   IRVING  Sara   2013-05-13
4785     777888999   IRVING  Sara   2012-05-16
222300   444444444   LEMERISE    GEORGE 2013-04-14
24386    444444444   LEMERISE    GEORGE 2012-03-25
24434    444444444   LEMERISE    GEORGE 2011-05-08

谢谢

解决方法:

一些假设,你的apnt_ymd已经是一个日期或日期时间,如果不是你可以转换这样做:

df['apnt_ymd'] = pd.to_datetime(df['apnt_ymd'])

因此我们可以通过nm_emp_list列进行分组,然后计算apnt_ymd的最低值并使用idxmin()返回索引.然后我们可以使用此索引对应原始df来显示所需的结果:

In [4]:

df.loc[df.groupby('nm_emp_lst')['apnt_ymd'].idxmin()]
Out[4]:
       id       ssno nm_emp_lst nm_emp_fst   apnt_ymd
4  175701  987654321       dubE    JEFFREY 2013-04-21
3  102872  123456789     GREENE      ALTON 2011-04-10
6   84785  126644444     IRVING       Sara 2012-05-16
9   24434  777888999   LEMERISE     GEORGE 2011-05-08

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...