【发布时间】:2020-04-05 06:00:04
【问题描述】:
我有两个数据框 -
ID Currency_a Amount_a Date_a
1 CAD 100 12-Jan
2 CAD 200 12-Feb
3 USD 200 15-Aug
4 USD 200 12-Jan
5 EUR 200 12-Feb
ID Currency_b Amount_b Date_b
6 CAD 500 25-Jan
7 CAD 600 13-Feb
8 USD 200 15-Aug
9 USD 400 20-Jan
10 EUR 200 12-Feb
任务是从 2 个各自的数据帧中创建一对 (ID,ID),如果 -
货币相同
Amount_a + Amount_b > 600
Date_a 和 Date_b 之间的时间段小于 10 天
所以这种情况下的输出应该是
(2,7), (4,9)
我正在使用(但它似乎不起作用:()-
a.merge(b, on='Currency).query('Amount_a + Amount_b > 600' and 'abs((Date_a - Date_b).dt.days) > 10').filter(like='ID').values.tolist()
【问题讨论】:
-
(4, 9) 等于 600 不大于 600。应该是
>= 600? -
你为解决这个问题做了什么?
标签: python pandas dataframe conditional-statements