我hava pandas数据框,我必须按一些列分组.组中的大多数组只有一行,但有几行有多行.对于其中的每一个,我只想保留最早的日期.我都试过了agg和filter功能,但他们似乎并没有做什么,我需要.
def first(df):
if len(df) > 1:
return df.ix[df['date'].idxmin()]
else:
return df
df.groupby(['id', 'period', 'type').agg(first)
Run Code Online (Sandbox Code Playgroud)
按日期排序,然后抓住第一行.
df.sort_values('date').groupby(['id', 'period', 'type']).first()
Run Code Online (Sandbox Code Playgroud)