过滤df
与最小日期的指标。
idxmin
让你知道该索引。然后传递给loc
。
df.loc[df.groupby(['id', 'period', 'type']).date.idxmin()]
考虑df
df = pd.DataFrame([
['a', 'q', 'y', '2011-03-31'],
['a', 'q', 'y', '2011-05-31'],
['a', 'q', 'y', '2011-07-31'],
['b', 'q', 'x', '2011-12-31'],
['b', 'q', 'x', '2011-01-31'],
['b', 'q', 'x', '2011-08-31'],
], columns=['id', 'period', 'type', 'date'])
df.date = pd.to_datetime(df.date)
df
id period type date
0 a q y 2011-03-31
1 a q y 2011-05-31
2 a q y 2011-07-31
3 b q x 2011-12-31
4 b q x 2011-01-31
5 b q x 2011-08-31
然后
df.loc[df.groupby(['id', 'period', 'type']).date.idxmin()]
id period type date
0 a q y 2011-03-31
4 b q x 2011-01-31
'df.sort_values( '日期')。GROUPBY([ 'ID', '期间', '类型' ])。first()'? – MaxU