您可以按日期和相等将值排序为"xyz"(带numpy.lexsort
),并使用groupby.last
得到每个组的最后一个值:
out = (data
.iloc[np.lexsort([pd.to_datetime(data['b'], format='%d-%m-%y'),
data['c'].eq('xyz')])]
.groupby('a', as_index=False).last()
)
输出:
a b c
0 123 13-09-23 xyz
1 456 12-09-23 xyz