Я пытаюсь суммировать столбец, если он попадает между двумя датами и основан на jobid. Я использую приведенную ниже функцию, но в качестве значения суммы я сохраняю ноль.
def jobrun (row):
return table1[(table1.job == row['job']) & \
(table1.date >= row['past']) & \
(table1.date < row['present'])]['Hours'].sum()
table2['Usage'] = table2.apply(lambda row: jobrun(row), axis = 1)
Все столбцы даты преобразуются в <datecolumn>.astype('datetime64').dt.strftime('%d/%m/%Y')
Пожалуйста, дайте мне знать, что я пропустил.
![enter image description here](https://i.stack.imgur.com/3TBb9.png)
![enter image description here](https://i.stack.imgur.com/Kq3Z3.png)
Table1
Job Hours Date
706010 2.935 01/03/20
706010 14.9936 02/03/20
706010 14.9079 03/03/20
706010 11.1339 04/03/20
706010 0.0172 06/03/20
706010 0.0172 07/03/20
706011 0.0175 10/03/20
706011 0.0508 14/03/20
706011 0.085 16/03/20
706011 0.0347 17/03/20
706011 0.0078 18/03/20
706011 0.0169 30/03/20
706011 0.0006 01/04/20
706011 0.0172 04/04/20
706011 2.642 05/04/20
706011 6.5853 06/04/20
706011 0.2653 07/04/20
706011 0.0175 08/04/20
706012 0.0375 09/04/20
706012 0.0339 12/04/20
706012 0.0169 13/04/20
706012 0.0167 15/04/20
706012 0.1169 20/04/20
706012 0.3003 21/04/20
706012 0.0169 26/04/20
706012 6.7994 30/10/19
Table2
Job past present
706010 31/07/2019 2020-04-05
706011 31/11/2019 2020-05-05
706012 31/07/2019 2020-05-05
Expected Output
Job past present Usage
706010 31/07/2019 2020-04-05 44
706011 31/11/2019 2020-05-05 9
706012 31/07/2019 2020-05-05 7