我尝试搜索答案,但大多数是基于合并2个数据帧,但是我的数据集存在于单个数据帧中
D1date D1price D2date D2price
1/2/2017 11.4 1/3/2017 11.3
1/3/2017 12.4 1/4/2017 12.3
1/4/2017 14.4 1/5/2017 12.4
1/5/2017 15.5 1/6/2017 12.5
结果我正在寻找
D1date D1price D2price
1/2/2017 11.4 nan
1/3/2017 12.4 11.3
1/4/2017 14.4 12.3
1/5/2017 15.5 12.4
任何善良的灵魂都可以告诉我吗?
答案 0 :(得分:1)
df = df.filter(like='D1').join(df.filter(like='D2').set_index('D2date'), on='D1date')
print (df)
D1date D1price D2price
0 1/2/2017 11.4 NaN
1 1/3/2017 12.4 11.3
2 1/4/2017 14.4 12.3
3 1/5/2017 15.5 12.4
答案 1 :(得分:1)
你试过这样的事吗:
df[['D1date', 'D1price']].merge(df[['D2date', 'D2price']], how='left', left_on='D1date', right_on='D2date')
您可以添加:
.drop('D2date', axis=1)
删除D2date
列。
完整代码:
df = df[['D1date', 'D1price']].merge(df[['D2date', 'D2price']], how='left', left_on='D1date', right_on='D2date').drop('D2date', axis=1)