È possibile groupby
campo Id:
In [11]: df
Out[11]:
Id Date
0 1 2012-03-01 00:00:00
1 1 2013-04-08 00:00:00
2 2 2013-01-17 00:00:00
3 2 2013-05-04 00:00:00
4 2 2012-10-30 00:00:00
5 3 2013-01-03 00:00:00
In [12]: g = df.groupby('Id')
Se non si è certi della ordinazione, si potrebbe fare qualcosa sulla falsariga:
In [13]: g.agg(lambda x: x.iloc[x.Date.argmax()])
Out[13]:
Date
Id
1 2013-04-08 00:00:00
2 2013-05-04 00:00:00
3 2013-01-03 00:00:00
che per ogni gruppo afferra la riga con la data più recente (la più recente) (la parte argmax).
se si sapeva che erano in ordine si può prendere l'ultimo (o il primo) di entrata:
In [14]: g.last()
Out[14]:
Date
Id
1 2013-04-08 00:00:00
2 2012-10-30 00:00:00
3 2013-01-03 00:00:00
(Nota: non sono in ordine, quindi questo non funziona in questo caso!
fonte
2013-06-10 18:41:35
La data rappresenta la data di invio, mi serve solo l'ultima inviata in quanto sostituisce le righe precedenti. – ChrisArmstrong