I am trying to replace the values of rows in one dataframe with another.
The following is the sample code
import pandas as pd
import numpy as np
from pprint import pprint
raceA = ['r1','r3','r4','r5','r6','r7','r8', 'r9']
qualifierA = ['last','first','first','first','last','last','first','first']
participantA = ['rat','rat','cat','cat','rat','dog','dog','dog']
dfA = pd.DataFrame(
{'race':raceA,
'qualifier':qualifierA,
'participant':participantA
}
)
pprint(dfA)
raceB = ['r1','r2','r3','r4','r5','r6','r7','r8', 'r9','r10']
qualifierB = ['last',np.nan,np.nan,'first','first','last','last','first','first',np.nan]
participantB = ['rat','rat',np.nan,'cat','cat','rat','dog','dog',np.nan,np.nan]
dfB = pd.DataFrame(
{'race':raceB,
'qualifier':qualifierB,
'participant':participantB
}
)
pprint(dfB)
dfB.loc[dfB.race.isin(dfA.race), ['qualifier','participant']] = dfA[['qualifier','participant']]
pprint(dfB)
For instance in dfA,
r9 first dog
dfB contains,
r9 first NaN
Desired output: dfB
r9 first dog
Output obtained:
r9 NaN NaN
Could someone look into this?

