这可能是一个复杂的问题
我有两个桌子
表1:
Day Value
1 1200
3 1300
4 1400
5 1500
表2:
Day Price
1 5
3 8
4 6
5 9
我想要的结果,Final_table
Day Value Price
1 1200 NaN
3 1300 5
4 1400 8
5 1500 6
说明:
在“天”将table2联接到table1以创建Final_table,但存在一些条件
如果满足以下条件,则将Table2行连接到Table1行:
Table2["Day"] >= Table1["Day"] - 2 and Table2["Day"] < Table1["Day"]
如果有两个Table2行满足条件,则加入仅具有最大“天”的行
答案 0 :(得分:0)
尝试一下:
result = pd.DataFrame(columns=['day', 'value', 'price'])
for index, row in Table1.iterrows():
tmp = Table2[(Table2["day"] >= row['day'] - 2) & (Table2["day"] < row['day'])]
tmp['day'] = row['day']
result = result.append(tmp[['price', 'day']].merge(row.to_frame().T, on='day'))
result
day price value
0 3 5 1300
0 4 8 1400
0 5 8 1500
1 5 6 1500