У меня есть df, который является concat
из двух идентично структурированных df, первый - Orders
, а второй - Cancels
. В Orders
есть более 20000 строк и небольшое число Cancels
, которые имеют OrderNo
& ItemCode
. Я сделал отмененные количества отрицательными, чтобы при группировке df по OrderNo
и ItemCode
я мог суммировать поля количества с agg
, что дает мне фактическое количество отгруженных товаров, которое компенсирует отмененные заказы.
Ниже приводится мой фрейм данных:
OrderNo OrderDate LineNo ClientNo ItemCode QtyOrdered QtyShipped
0 528758 1/3/2017 1 1358538 111931 70 70
1 528791 1/3/2017 10 1254798 110441 300 300
2 528791 1/3/2017 1 1254798 1029071 10 10
3 528791 1/3/2017 2 1254798 1033341 10 10
4 528791 1/3/2017 8 1254798 1040726 15 15
... ... ... ... ... ... ... ...
28344 537667 2/6/2017 12 43823870 10137992 0 -2
28345 537771 2/7/2017 5 1276705 1041106 0 -4
28346 539524 2/13/2017 6 1254798 1038323 0 -10
28347 542362 2/23/2017 11 1254612 1041108 0 -2
28348 542835 2/23/2017 13 1255235 10137993 0 -5
28349 rows × 7 columns
После запуска:
ActualOrders = PreActualOrders.groupby(['OrderNo','ItemCode']).agg({'QtyOrdered': 'sum', 'QtyShipped': 'sum'}).reset_index()
Я получаю желаемый результат, но я теряю все остальные столбцы в DF.
Пример результата ниже:
OrderNo ItemCode QtyOrdered QtyShipped
28255 543734 1038324 1 1
28256 543734 10137992 1 1
28257 543734 10137993 1 1
28258 543735 1041106 1 1
28259 543735 1041108 1 1
28260 543735 10135359 1 1
Что мне нужно добавить, чтобы все столбцы были в исходном df?
Все значения в этих других столбцах совпадают, так как они соответствуют отменам или порядку.
Спасибо,
MTH