为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫在df中找到与前一行具有相同值的最后一行

熊猫在df中找到与前一行具有相同值的最后一行

慕仙森 2022-04-23 16:57:13
我有一个df,acct_no    code    date           id100        10      01/04/2019     22100        10      01/03/2019     22100        10      01/05/2019     22200        20      01/06/2019     33200        20      01/05/2019     33200        20      01/07/2019     33我想首先df按升序对date何时acct_no和code相同,df.sort_values(['acct_no', 'code', 'date'], inplace=True)然后我想知道找到最后一行的方法,其acct_no,code与前一行相同,结果需要看起来像,  acct_no    code    date           id  100        10      01/05/2019     22  200        20      01/07/2019     33
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

您也可以尝试groupby.last():


df.groupby(['acct_no', 'code'],as_index=False).last()

   acct_no  code        date  id

0      100    10  01/05/2019  22

1      200    20  01/07/2019  33


查看完整回答
反对 回复 2022-04-23
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

使用DataFrame.drop_duplicates,但首先将列转换为日期时间:


#if dates are first use dayfirst=True

df['date'] = pd.to_datetime(df['date'], dayfirst=True)

#if months are first

#df['date'] = pd.to_datetime(df['date'])

df1 = (df.sort_values(['acct_no', 'code', 'date'])

         .drop_duplicates(['acct_no', 'code'], keep='last'))

print (df1)

   acct_no  code       date  id

2      100    10 2019-05-01  22

5      200    20 2019-07-01  33


查看完整回答
反对 回复 2022-04-23
  • 2 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信