根据列表内容重复 pandas 行

Zan*_*nam 3 pandas python-3.8

我有一个大的 pandas 数据框 df 为:

Col1    Col2
2       4
3       5
Run Code Online (Sandbox Code Playgroud)

我有一个很大的清单:

['2020-08-01', '2021-09-01', '2021-11-01']
Run Code Online (Sandbox Code Playgroud)

我正在努力实现以下目标:

Col1    Col2    StartDate
2       4       8/1/2020
3       5       8/1/2020
2       4       9/1/2021
3       5       9/1/2021
2       4       11/1/2021
3       5       11/1/2021
Run Code Online (Sandbox Code Playgroud)

基本上平铺数据框df,同时将列表元素添加为新列。我不知道如何处理这个问题?

Sco*_*ton 5

让我们将列表理解与assignand一起使用pd.concat

l = ['2020-08-01', '2021-09-01', '2021-11-01']
pd.concat([df1.assign(startDate=i) for i in l], ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

输出:

   Col1  Col2   startDate
0     2     4  2020-08-01
1     3     5  2020-08-01
2     2     4  2021-09-01
3     3     5  2021-09-01
4     2     4  2021-11-01
5     3     5  2021-11-01
Run Code Online (Sandbox Code Playgroud)