У меня есть объединенный файл Excel с несколькими файлами еженедельных заказов
import pandas as pd
Jan1 = pd.read_excel(r"~\Documents\1to6janReport1.xlsx")
Jan2 = pd.read_excel(r"~\Documents\7to12janReport2.xlsx")
Jan3 = pd.read_excel(r"~\Documents\13to19janReport3.xlsx")
Jan4 = pd.read_excel(r"~\Documents\20to26janReport4.xlsx")
all_df_list = [Jan1, Jan2, Jan3,Jan4]
appended_df = pd.concat(all_df_list)
appended_df.to_excel("SallesDB1.xlsx", index=False)
И структура файла выглядит следующим образом
Я хочу вернуть новый фрейм данных для подсчета заказов каждый покупатель.
Где, если продукт равен равному товару, а покупатель не равен нулю, а равный покупатель возвращает только строку, в которой в сводке содержатся слова «продукт» и «окончено».
Я знаю, что это сложно, но мне нужно получить процент заказов каждого покупателя (считая количество заказов, а не количество). Проблема в том, что один и тот же продукт будет появляться каждый день с кратким описанием дня, когда запрос может занять день или несколько дней, что приведет к неточному проценту. Кроме того, после завершения заказа покупателем новый покупатель может заказать тот же товар, или тот же покупатель может начать новый заказ, и единственный способ узнать это - использовать сводку (начало, конец) в качестве ключевых слов.
Конечный результат должен выглядеть следующим образом
Product date quantity summary buyer
NO6 2/1/2019 6 Operation product request ended KLW
ZS5 3/1/2019 5 The product request ended WHM
Обновление
Product date quantity summary buyer
*day1*
AX1 2/1/2019 15 The product request started today HTN
X5L 2/1/2019 0 No operation update null
NO6 2/1/2019 6 Operation product request ended KLW
ZS5 2/1/2019 5 The product request started WHM
*day2*
AX1 3/1/2019 15 Product request still pending HTN
X5L 3/1/2019 5 A new product request started LKJ
NO6 3/1/2019 0 No update for operation null
ZS5 3/1/2019 5 The product request ended WHM
*day3*
AX1 4/1/2019 15 Product request ended HTN
X5L 4/1/2019 5 The product request under-process LKJ
NO6 4/1/2019 0 No update for operation null
ZS5 4/1/2019 3 New request for the product started KLW
Таким образом, в таблице данных (в Excel) более 200 продуктов. Эти продукты будут повторяться каждый день. Резюме для каждого продукта отличается каждый день.
Но что мне действительно нужно, так это номер запроса покупателя (количество).
В продукте AX1 , например, запрос, начатый в 2ed и закончился на 4-м. Так как мне нужно количество покупателей, мне понадобится только одна строка, в которой Product == Product и покупатель == покупатель, а в сводке содержатся обе строки (товар и окончание).
То есть
Product date quantity summary buyer
AX1 4/1/2019 15 Product request ended HTN
Опять же я знаю, что это очень завершено.