Python 在另一列中计算Unique时保留最新日期
我有以下数据帧:Python 在另一列中计算Unique时保留最新日期,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据帧: date name 0 20/06/2014 Allan Watt 1 20/06/2014 Cindy Mark 2 20/06/2014 Luisa Mostert 3 19/06/2014 Allan Watt 我想以下面的数据框结束,它计算“name”中的唯一值,并使用最新的日期值。例如
date name
0 20/06/2014 Allan Watt
1 20/06/2014 Cindy Mark
2 20/06/2014 Luisa Mostert
3 19/06/2014 Allan Watt
我想以下面的数据框结束,它计算“name”中的唯一值,并使用最新的日期值。例如:
latest_date name count
0 20/06/2014 Allan Watt 2
1 20/06/2014 Cindy Mark 1
2 20/06/2014 Luisa Mostert 1
目前,我正在通过以下操作添加“计数”列:
df = pd.DataFrame({'count': df.groupby(['name']).size()}).reset_index()
name count
0 Allan Watt 2
1 Cindy Mark 1
2 Luisa Mostert 1
但这会完全删除日期列。鉴于:
df = pd.DataFrame({'count': df.groupby(['name', 'date']).size()}).reset_index()
显然,按日期分组也可以给我留下:
latest_date name count
0 20/06/2014 Allan Watt 1
1 20/06/2014 Cindy Mark 1
2 20/06/2014 Luisa Mostert 1
3 19/06/2014 Allan Watt 1
实现预期结果的最佳方法是什么?您可以执行以下操作:
df['count'] = 1
df = df.groupby('name').agg({'count':sum, 'date':max})
df = df.rename(columns={'date':'latest_date'})
df = df.reset_index()
print df
name count latest_date
0 Allan Watt 2 20/06/2014
1 Cindy Mark 1 20/06/2014
2 Luisa Mostert 1 20/06/2014