IIUC,尝试:
df.assign(Item_cnt=(df['Item'] != df['Item'].shift()).cumsum())\
.drop_duplicates(['Item','Item_cnt'], keep='last')
输出:
Item datetime Item_cnt
2 apples 1.2 1
3 oranges 2.3 2
4 apples 2.5 3
5 bananas 2.7 4