有一个带有值的 df: name date0 tom 01-07-20061 tom 07-07-20062 tom 13-07-20063 tom 19-07-20064 mark 01-07-20065 mark 07-07-20066 mark 13-07-20067 mark 19-07-2006如何添加min date最小日期 + 1 的列预期输出: name date min date0 tom 01-07-2006 02-07-20061 tom 07-07-2006 02-07-20062 tom 13-07-2006 02-07-20063 tom 19-07-2006 02-07-20064 mark 02-07-2006 03-07-20065 mark 07-07-2006 03-07-20066 mark 13-07-2006 03-07-20067 mark 19-07-2006 03-07-2006
1 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
将列转换为日期时间,然后通过以下方式获得每组最小值GroupBy.transform
并最后添加 1 天Timedelta
:
df['date'] = pd.to_datetime(df['date'], dayfirst=True)
df['min date'] = df.groupby('name')['date'].transform('min') + pd.Timedelta(1, 'd')
print (df)
name date min date
0 tom 2006-07-01 2006-07-02
1 tom 2006-07-07 2006-07-02
2 tom 2006-07-13 2006-07-02
3 tom 2006-07-19 2006-07-02
4 mark 2006-07-02 2006-07-03
5 mark 2006-07-07 2006-07-03
6 mark 2006-07-13 2006-07-03
7 mark 2006-07-19 2006-07-03
添加回答
举报
0/150
提交
取消