Python 根据某些条件插入行,填写数据

Python 根据某些条件插入行,填写数据,python,pandas,Python,Pandas,我有以下数据帧: data={"Date":["8/4/2020","8/4/2020","8/4/2020","8/4/2020","8/4/2020"], "Weight":[35,35,30,50,50], "Subportfolio":["Portfolio1","Portfo

我有以下数据帧:

data={"Date":["8/4/2020","8/4/2020","8/4/2020","8/4/2020","8/4/2020"],
      "Weight":[35,35,30,50,50],
      "Subportfolio":["Portfolio1","Portfolio2","Portfolio3","Portfolio4","Portfolio5"],
      "Portfolio Code":[1,1,1,2,2],
      "Instrument":["","","","",""],
      "Amount":["","","","",""]}
df=pd.DataFrame(data)
看起来是这样的:

    Date      Weight    Subportfolio    Portfolio Code   Instrument   Amount
0   8/4/2020    35      Portfolio 1           1
1   8/4/2020    35      Portfolio 2           1
2   8/4/2020    30      Portfolio 3           1
3   8/4/2020    50      Portfolio 4           2
4   8/4/2020    50      Portfolio 5           2

我想在新的公文包代码开始之前插入一行。同时,新创建的行应该包含一些数据——总是相同的。 我想切实做到这一点:

    Date      Weight    Subportfolio    Portfolio Code     Instrument    Amount
0 8/4/2020     35       Portfolio 1          1      
1 8/4/2020     35       Portfolio 2          1      
2 8/4/2020     30       Portfolio 3          1      
3 8/4/2020                                   1             Exposure      1000000
4 8/4/2020     50       Portfolio 4          2      
5 8/4/2020     50       Portfolio 5          2      
6 8/4/2020                                   2             Exposure      1000000

我实际上没有尝试过任何东西,因为我不知道如何解决这个问题。我在考虑使用groupby(by:Portfolio code),但不确定如何进行。

一种通用方法是
concat
然后排序:

(pd.concat([df,df[['Date','Portfolio Code']].drop_duplicates()
                 .assign(Instrument='Exposure',Amount=1000000)
          ])
   .sort_values('Portfolio Code', kind='mergesort')
)
输出:

       Date  Weight Subportfolio  Portfolio Code Instrument   Amount
0  8/4/2020    35.0   Portfolio1               1                    
1  8/4/2020    35.0   Portfolio2               1                    
2  8/4/2020    30.0   Portfolio3               1                    
0  8/4/2020     NaN          NaN               1   Exposure  1000000
3  8/4/2020    50.0   Portfolio4               2                    
4  8/4/2020    50.0   Portfolio5               2                    
3  8/4/2020     NaN          NaN               2   Exposure  1000000

日期是否为
Profolio code
所独有?日期始终相同