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

使用时间序列条件删除重复项

使用时间序列条件删除重复项

手掌心 2022-08-11 20:17:42
我有一张带有送货目的地的桌子。我希望根据时间条件删除目的地。这意味着,例如,ship1已经从HK更改为SH,并从SH更改为HK,每次更改目的地时,都应该记录,无论HK是否是目的地。A   Destination TimeShip1   HK  1Ship1   HK  2Ship1   BKK 3Ship2   SH  4Ship2   SH  5Ship2   QD  6Ship1   HK  7Ship2   QD  8Ship2   HK  9所以理想的结果是:A   DestinationShip1   HKShip1   BKKShip2   SHShip2   QDShip1   HKShip2   HK
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

你在寻找这样的东西吗?


df.loc[~df.groupby('A',sort=False)['Destination'].apply(lambda x: x.eq(x.shift())), ['A','Destination']]

输出


        A   Destination

0   Ship1   HK

2   Ship1   BKK

3   Ship2   SH

5   Ship2   QD

6   Ship1   HK

8   Ship2   HK


查看完整回答
反对 回复 2022-08-11
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

moy解决方案的变体:


B = df.groupby(['A'],sort=False).Destination.shift()

df.loc[~df.Destination.eq(B)]


      A Destination Time

0   Ship1   HK  1

2   Ship1   BKK 3

3   Ship2   SH  4

5   Ship2   QD  6

6   Ship1   HK  7

8   Ship2   HK  9


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

添加回答

举报

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