0

I have got 2 df (df1 and df2), which I would like to merge to df3.

df1

lst=[[1,'Stocks',0.5],[1,'Bonds',0.5],[2,'Stocks',0.3],[2,'Bonds',0.3],[2,'AI',0.4]]
df1=pd.DataFrame(lst,columns=['PfNr','AK','Wght'])

df2

lst=[[1,'NaN','NaN','NaN'],[2,'NaN','NaN','NaN']]
df2=pd.DataFrame(lst,columns=['PfNr','Bonds','Stocks','AI'])

desired df3

lst=[[1,0.5,0.5,'NaN'],[2,0.3,0.3,0.4]]
df3=pd.DataFrame(lst,columns=['PfNr','Bonds','Stocks','AI'])

Would you please assist me?

luigigi
  • 4,146
  • 1
  • 13
  • 30
Bsleon
  • 135
  • 6
  • 1
    you can simply do `df1.pivot('PfNr', 'AK', 'Wght').reset_index()` to get df3 – luigigi Nov 16 '21 at 07:48
  • Hi Luigigi. Thanks for your help. It may be the best alternative for a for loop with ismember as indicator... – Bsleon Nov 17 '21 at 15:18

0 Answers0