在使用不同索引长度的另一个数据帧替换一个数据帧中的NaN值的一列有效期时,我感到有点困惑。
示例数据df1:
SOH Price Value Expiry Comments
0 1P 10.49 10.49 NaN NaN
1 220 7.55 16.61 NaN NaN
用df2替换过期列:
SOH Price Value Expiry Comments
1 1P 6.22 6.22 NaN NaN
2 61 17.65 10.77 NaN NaN
3 1P 11.99 11.99 NaN NaN
4 2P 54.45 108.90 NaN NaN
5 1P 10.49 10.49 May-17 NaN
6 220 7.55 16.61 June-18 NaN
因此,新数据框可能具有不同的顺序和索引,但列保持不变。
我想为df1输出实现:
SOH价格价值到期评论
0 1P 10.49 10.49 May-17 NaN
1 220 7.55 16.61 June18 NaN
我试过了:
但还没有运气:(任何帮助都将不胜感激!
答案 0 :(得分:1)
join
上的 ['SOH', 'Price', 'Value']
然后fillna
cols = ['SOH', 'Price', 'Value']
d2 = df2.set_index(cols).Expiry.dropna()
df1.fillna(df1.drop('Expiry', 1).join(d2, on=cols))
SOH Price Value Expiry Comments
0 1P 10.49 10.49 May-17 NaN
1 220 7.55 16.61 June-18 NaN