Tack 1
drop_duplicates. , Tack 2 , . .
df.sort_values(['dealer', 'date'], inplace=True)
df.drop_duplicates(['dealer', 'date'], inplace=True)
Tack 2
groupby merge. groupby, . how='inner', , groupby, .
, . , drop_duplicates .
df.merge(df.groupby('dealer')['date'].max().reset_index(),
on=['dealer', 'date'], how='inner')
invoice_no dealer billing_change_previous_month date
0 100 1 -41981 2017-01-30
1 5505 2 0 2017-01-30