2 回答
TA贡献1829条经验 获得超13个赞
在您的情况下,当联接的左表和右表都具有不属于合并键(“ CID”)的相同数据列(“名义”)时,合并函数中没有方法可以确定哪个用于名义的价值。
您可以再添加一行代码来解决此问题。
import pandas as pd
import numpy as np
# make the data
df1 = pd.DataFrame({'CID':[1,25,100], 'Notional': [1000, 2500, 5500]})
df2 = pd.DataFrame({'CID':[25], 'Notional': [0]})
# merge the data
test = df1.merge(df2, how='left', on='CID')
# If Notional from df2 was not missing, then use it, else use df1's Notional
test['Notional'] = np.where(test['Notional_y'].isna(), test['Notional_x'], test['Notional_y'])
然后,您可以从数据框中删除Notional_x和Notional_y,保留新创建的Notional。
TA贡献1982条经验 获得超2个赞
试试这个。
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'CID':[1,25,100], 'Notional': [1000, 2500, 5500]})
df2 = pd.DataFrame({'CID':[25], 'Notional2': [0]})
df=pd.merge(df1,df2,how='left')
df['Notional'] = np.where(df['Notional2'].isna(),df['Notional'],df['Notional2'])
df.drop('Notional2',axis=1)
添加回答
举报