df1
Reference_Code Last_Price Price_Now
B0002EH2X2 NaN 9.99
B0075DRIAK NaN 19.99
B0083F2XDQ NaN 29.99
B009AS5VW0 NaN 39.99
df2
Reference_Code Price_Now
B0002EH2X2 49.99
B0075DRIAK 19.99
B0083F2XDQ 29.99
B009AS5VW0 9.99
我想将df1中的Price_Now中的值移动到df1中的Last_Price列中,其中价格与df2不同。在上面的例子中,我希望输出是;
df1
Reference_Code Last_Price Price_Now
B0002EH2X2 9.99 49.99
B0075DRIAK NaN 19.99
B0083F2XDQ NaN 29.99
B009AS5VW0 39.99 9.99
我试着用熊猫,但让自己有点旋转。数据集比上面显示的表大得多
做一个地图:
s = df1['Reference_Code'].map(df2.set_index('Reference_Code')['Price_Now'])
mask = (s!=df1['Price_Now'])
df1['Last_Price'] = df1['Price_Now'].where(mask)
df1['Price_Now'] = s.where(mask, df['Price_Now']
输出:
Reference_Code Last_Price Price_Now
0 B0002EH2X2 9.99 49.99
1 B0075DRIAK NaN 19.99
2 B0083F2XDQ NaN 29.99
3 B009AS5VW0 39.99 9.99