我有两个数据框。一个代表订单下达和到达,而另一个代表商店的工作日。
天数是一年中的几天。即32 = 2月1日。
orders = DataFrame({'placed':[100,103,104,105,108,109], 'arrived':[103,104,105,106,111,111]})
Out[25]:
arrived placed
0 103 100
1 104 103
2 105 104
3 106 105
4 111 108
5 111 109
calendar = DataFrame({'day':['100','101','102','103','104','105','106','107','108','109','110','111','112','113','114','115','116','117','118','119','120'], 'closed':[0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0]})
Out[21]:
closed day
0 0 100
1 1 101
2 1 102
3 0 103
4 0 104
5 0 105
6 0 106
7 0 107
8 1 108
9 1 109
10 0 110
11 0 111
12 0 112
13 0 113
14 0 114
15 1 115
16 1 116
17 0 117
18 0 118
19 0 119
20 0 120
我想要做的是计算放置和到达之间的差异
x = orders['arrived'] - orders['placed']
Out[24]:
0 3
1 1
2 1
3 1
4 3
5 2
dtype: int64
如果到达之间任何一天减去一个,那么放置(包括)是商店关闭的那一天。
即。在第一行中,订单在第100天放置并在第103天到达。使用的日期是100,101,102,103。103和100之间的差异是3.但是,因为101和102是商店的日子关闭我想为每个减去1。那是3 -1 -1 = 1.最后将这个结果附加到订单df。