0

I have two df's that I want to merge (for Code see below). Basically I want to fill column "MExp" in df "df2" with the corresponding "Date" entries in column "Rate" from df "df1". The desired output is shown in "df3". My problem is, that in "df1" are entries incl., that aren't entries of "df2". Can anyone help here? THX!

import numpy as np
import pandas as pd
import datetime as datetime

datetime.date(2022,1,1)

list1 = [datetime.date(2022,9,29),datetime.date(2022,9,30),datetime.date(2022,10,1),
         datetime.date(2022,10,2), datetime.date(2022,10,3), datetime.date(2022,10,4), 
         datetime.date(2022,10,5), datetime.date(2022,10,6), datetime.date(2022,10,7)]
list2 = [-0.2, -0.1, 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
df1 = pd.DataFrame(list1, list2)
df1.reset_index(drop=False, inplace=True)
df1 = df1.rename(columns={'index': 'Rate', 0: 'Date'})
df1 = df1.loc[:, ["Date","Rate"]]


list3 = [datetime.date(2022,10,2), datetime.date(2022,10,3), datetime.date(2022,10,4), 
         datetime.date(2022,10,5), datetime.date(2022,10,6), datetime.date(2022,10,7),
         datetime.date(2022,10,8), datetime.date(2022,10,9), datetime.date(2022,10,10),
         datetime.date(2022,10,11), datetime.date(2022,10,12), datetime.date(2022,10,13)]
list4 = [None]*12
list5 = [0]*12

# list3 = pd.DataFrame(list3)
# list4 = pd.DataFrame(list4)
# list5 = pd.DataFrame(list5)
df2 = pd.concat([pd.DataFrame(list3), pd.DataFrame(list4), pd.DataFrame(list5)], axis = 1)
df2.columns = ['Date', 'Year', 'MExp']



# desired output
list6 = [datetime.date(2022,10,2), datetime.date(2022,10,3), datetime.date(2022,10,4), 
         datetime.date(2022,10,5), datetime.date(2022,10,6), datetime.date(2022,10,7),
         datetime.date(2022,10,8), datetime.date(2022,10,9), datetime.date(2022,10,10),
         datetime.date(2022,10,11), datetime.date(2022,10,12), datetime.date(2022,10,13)]
list7 = [None]*12
list8 = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0, 0, 0, 0, 0, 0]
df3 = pd.concat([pd.DataFrame(list6), pd.DataFrame(list7), pd.DataFrame(list8)], axis = 1)
df3.columns = ['Date', 'Year', 'MExp']

0 Answers0