我有一张带有送货目的地的桌子。我希望根据时间条件删除目的地。这意味着,例如,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
慕尼黑的夜晚无繁华
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
添加回答
举报
0/150
提交
取消