如何创建列并通过for循环更改其值?

我是python和pandas的新手。我搜索了许多帖子,讨论如何按条件更改数据框的值。但是,如果我得到一个条件很多的数据框怎么办?

我有以下数据框:

import pandas as pd
import datetime as dt

data = {"Project":["A","A","A","B","B"], "Date":[dt.datetime(2020,1,1),dt.datetime(2020,3,1),dt.datetime(2020,5,1),dt.datetime(2020,2,1),dt.datetime(2020,4,1)]}
df = pd.DataFrame(data)
    Project Date
0   A       2020-01-01
1   A       2020-03-01
2   A       2020-05-01
3   B       2020-02-01
4   B       2020-04-01

我想得到以下结果:

    Project Date        Start       End
0   A       2020-01-01  2020-01-01  2020-05-01
1   A       2020-03-01  2020-01-01  2020-05-01
2   A       2020-05-01  2020-01-01  2020-05-01
3   B       2020-02-01  2020-02-01  2020-04-01
4   B       2020-04-01  2020-02-01  2020-04-01

我想可以通过以下方法创建“开始”和“结束”列,但是我想分别设置不同项目的开始日期和结束日期。

for i in df['Project']:
    tmp = df[df['Project']== i ]
    df['Start'] = min(tmp['Date'])
    df['End'] = max(tmp['Date'])

    Project Date        Start       End
0   A       2020-01-01  2020-02-01  2020-04-01
1   A       2020-03-01  2020-02-01  2020-04-01
2   A       2020-05-01  2020-02-01  2020-04-01
3   B       2020-02-01  2020-02-01  2020-04-01
4   B       2020-04-01  2020-02-01  2020-04-01

这只是一个简单的例子。如果我有很多项目和日期怎么办。我可以使用for循环检查条件吗? 有什么办法吗?非常感谢