I have mydf below, which I have sorted on a dummy time column and the id:
mydf = pd.DataFrame(
    {
        'id': ['A', 'B', 'B', 'C', 'A', 'C', 'A'],
        'time': [1, 4, 3, 5, 2, 6, 7],
        'val': ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    }
).sort_values(['id', 'time'], ascending=False)
mydf
    id  time    val
5   C   6       f
3   C   5       d
1   B   4       b
2   B   3       c
6   A   7       g
4   A   2       e
0   A   1       a
I want to add a column (last_val) which, for each unique id, holds the latest val based on the time column. Entries for which there is no last_val can be dropped. The output in this example would look like:
mydf
    id  time    val last_val
5   C   6       f   d
1   B   4       b   c
6   A   7       g   e
4   A   2       e   a 
Any ideas?
 
    