猿问

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

我有一张带有送货目的地的桌子。我希望根据时间条件删除目的地。这意味着,例如,ship1已经从HK更改为SH,并从SH更改为HK,每次更改目的地时,都应该记录,无论HK是否是目的地。


A   Destination Time

Ship1   HK  1

Ship1   HK  2

Ship1   BKK 3

Ship2   SH  4

Ship2   SH  5

Ship2   QD  6

Ship1   HK  7

Ship2   QD  8

Ship2   HK  9

所以理想的结果是:


A   Destination

Ship1   HK

Ship1   BKK

Ship2   SH

Ship2   QD

Ship1   HK

Ship2   HK


手掌心
浏览 86回答 2
2回答

斯蒂芬大帝

你在寻找这样的东西吗?df.loc[~df.groupby('A',sort=False)['Destination'].apply(lambda x: x.eq(x.shift())), ['A','Destination']]输出        A   Destination0   Ship1   HK2   Ship1   BKK3   Ship2   SH5   Ship2   QD6   Ship1   HK8   Ship2   HK

慕尼黑的夜晚无繁华

moy解决方案的变体:B = df.groupby(['A'],sort=False).Destination.shift()df.loc[~df.Destination.eq(B)]      A Destination Time0   Ship1   HK  12   Ship1   BKK 33   Ship2   SH  45   Ship2   QD  66   Ship1   HK  78   Ship2   HK  9
随时随地看视频慕课网APP

相关分类

Python
我要回答