{"id":375289,"date":"2024-05-21T06:20:57","date_gmt":"2024-05-21T06:20:57","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=375289"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=375289","title":{"rendered":"<span>ABC-XYZ \u0430\u043d\u0430\u043b\u0438\u0437 \u043d\u0430 Python. \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043e\u043c \u0438 \u0441\u0445\u0435\u043c\u0430\u043c\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>ABC \u0430\u043d\u0430\u043b\u0438\u0437, \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442 \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f<\/h2>\n<p>\u0412 \u043e\u0434\u043d\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043e-\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0433\u0434\u0435 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439\u043d\u044b\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0437\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ABC \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u041e \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043c\u043d\u043e\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f, \u043e\u043f\u0438\u0448\u0443 \u0441\u0432\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u0438\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. <\/p>\n<p>\u0423 \u043d\u0430\u0441 \u0431\u044b\u043b\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0448\u0438\u0440\u043e\u043a\u0430\u044f \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 , \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0442\u0440\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f. \u0410\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e , \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430.<\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u0432 \u042d\u043a\u0441\u0435\u043b\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 OLAP &#8212; \u043a\u0443\u0431\u0430. \u041f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u0435\u0435 , \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0440\u044f\u0434 \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430  &#8212; \u044d\u0442\u043e  \u0440\u0443\u0447\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443\u0442 \u043a \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0438\u0437 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0449\u0435 \u0438 \u0440\u044f\u0434 \u043f\u043e\u0437\u0438\u0446\u0438\u0439: \u043d\u043e\u0432\u0438\u043d\u043a\u0438, \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a, \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0437\u0430\u043a\u0443\u043f\u043e\u043a \u043f\u043e\u0434 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0438.\u0442.\u0434. \u041a\u0430\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c\u0438 \u0438 \u0440\u0438\u0441\u043a \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0444\u0438\u043b\u044c\u0442\u0440 \u0431\u0443\u0434\u0435\u0442 \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0435\u043b\u0438\u043a. \u041d\u0443 \u0438 \u043f\u043b\u044e\u0441 \u0432\u0440\u0435\u043c\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0440\u0443\u0434\u0430 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u0436\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0433\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u0437 OLAP &#8212; \u043a\u0443\u0431\u0430 \u0432 \u043e\u0442\u0447\u0435\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c  \u0432 \u043e\u0442\u0447\u0435\u0442\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0431\u044b\u043b\u0438 \u043f\u0440\u043e\u0434\u0430\u0436\u0438. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0432\u0435\u0434\u044c \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0434\u0430\u0436, \u0430 \u0442\u0435 \u0442\u043e\u0432\u0430\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430. \u041d\u043e \u043d\u0435 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u043d\u0435 \u043d\u0430 \u044f\u0431\u043b\u043e\u043a\u0430\u0445, \u0433\u0440\u0443\u0448\u0430\u0445, \u0431\u0430\u043d\u0430\u043d\u0430\u0445 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0430 \u043f\u043e\u043b\u044f\u0445 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430, \u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0431\u043e\u043b\u0435\u0435 9000 SKU, \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u043f\u043e \u043a\u043e\u043d\u0441\u0438\u0441\u0442\u0435\u043d\u0446\u0438\u0438 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e, \u0438\u043c\u0435\u044e\u0449\u0435\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u044b\u0435 \u043b\u0438\u043d\u0435\u0439\u043a\u0438 \u0438 \u043c\u043e\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u044f\u0434\u044b, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0446\u0435\u043d\u043e\u0432\u044b\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b, \u0431\u0440\u0435\u043d\u0434\u043e\u0432\u043e\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u043f\u043e\u0434 \u043a\u0430\u043d\u0430\u043b\u044b \u043f\u0440\u043e\u0434\u0430\u0436. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439\u043d\u043e\u043c\u0443 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443  \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0432\u043e\u0435\u043c \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0435, \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0445 \u0431\u0435\u0437 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432 \u0435\u0434\u0438\u043d\u043e\u043c \u043e\u0442\u0447\u0435\u0442\u0435.<\/p>\n<\/li>\n<li>\n<p>ABC \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f  \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f. \u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f \u0431\u044b\u043b\u043e \u043d\u0435\u0440\u0430\u0432\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u043c, \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0438\u0436\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0433\u043b\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e SKU, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u043b\u0438 \u0440\u0430\u0437\u043d\u0443\u044e \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430, \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u0441\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u044f\u043c \u0442\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b , \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439\u043d\u043e\u043c\u0443 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443, \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u043c\u0443 \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c \u0438 \u043b\u043e\u0433\u0438\u043a\u0443 \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0438\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439. <\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e ABC \u043f\u043e \u0442\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c: \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442\u0443, \u0432\u0430\u043b\u043e\u0432\u043e\u043c\u0443 \u0434\u043e\u0445\u043e\u0434\u0443 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043f\u0440\u043e\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430. \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043f\u043e \u0442\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c, \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432 \u043e\u0431\u0449\u0435\u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b\u0430\u0441\u044c \u0432 \u0441\u0432\u043e\u044e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u0443\u044e \u043d\u0438\u0448\u0443. <\/p>\n<p>\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e ABC \u0430\u043d\u0430\u043b\u0438\u0437\u0430, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 Excel \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0435\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u0430. <\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 Python. \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043a\u043e\u0434\u0443 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0442\u0447\u0435\u0442\u0430. <\/p>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"python\">import pandas as pd import seaborn as sns import matplotlib.pyplot as plt<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f: \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u043c \u0438\u0442\u043e\u0433\u043e\u043c \u0432 80% \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u043e\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u043a\u043b\u0430\u0441\u0441 A, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043e\u0442 80% \u0434\u043e 95% &#8212; \u043a\u043b\u0430\u0441\u0441 B, \u043e\u0442 95% \u0434\u043e 100%  &#8212; \u043a\u043b\u0430\u0441\u0441 \u0421. <br \/>\u0414\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0430\u0441\u0441\u044b \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u0442\u043e\u0433\u043e\u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u0441\u0430\u043c\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0432 \u043a\u043e\u0434\u0435 \u043d\u0438\u0436\u0435.<\/p>\n<pre><code class=\"python\">def abc(cum):   if cum &lt;= 0.8:     return 'A'   elif cum &lt;= 0.95:     return 'B'   else:     return 'C'<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043e\u0431\u0449\u0435\u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0445 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430\u0445.<br \/>M &#8212; \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430<br \/>O &#8212; \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430<br \/>U &#8212; \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u043e\u0434 \u0437\u0430\u043a\u0430\u0437<br \/>W &#8212; \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434 \u0438\u0437 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e: \u043a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u043c\u044b \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043f\u043e \u0442\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c: \u0422\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442, \u0412\u0430\u043b\u043e\u0432\u0430\u044f \u043f\u0440\u0438\u0431\u044b\u043b\u044c, \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u044b \u0434\u043b\u044f \u0442\u0440\u0435\u0445 \u043c\u0435\u0442\u0440\u0438\u043a, \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u0432 \u0435\u0434\u0438\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441, \u043d\u0430 \u0431\u0430\u0437\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u0430\u0435\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435.<\/p>\n<pre><code class=\"python\">def category(arg):     categories = {         \"AAA\": 'M', \"AAB\": 'M', \"ABA\": 'M', \"ABB\": 'M',         \"ACA\": 'M', \"BAA\": 'M', \"BBA\": 'M',         \"AAC\": 'O', \"ABC\": 'O', \"ACB\": 'O', \"ACC\": 'O',         \"BAB\": 'O', \"BAC\": 'O', \"BBB\": 'O', \"BBC\": 'O',         \"BCA\": 'O', \"CAA\": 'O', \"CAB\": 'O', \"CBA\": 'O',         \"BCB\": 'U', \"BCC\": 'U', \"CAC\": 'U',         \"CBB\": 'U', \"CBC\": 'U'     }     return categories.get(arg, 'W')<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 .get() \u0441\u043b\u043e\u0432\u0430\u0440\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0435\u0441\u043b\u0438 \u043e\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 &#8216;W&#8217; (\u0432\u044b\u0432\u043e\u0434 \u0438\u0437 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e), \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u043d\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ABC \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u044f \u0432\u0437\u044f\u043b \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442\u0447\u0435\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c \u0412\u0421\u0415 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 \u0431\u044b\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043f\u0440\u043e\u0434\u0430\u0436\u0430\u043c \u043f\u043e\u043c\u0435\u0441\u044f\u0447\u043d\u043e. <br \/>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0442\u0447\u0435\u0442\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439: <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\" data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">ID<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"107\" width=\"107\">\n<p align=\"left\">Description<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">Attribute<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"79\" width=\"79\">\n<p align=\"left\">Category<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"84\" width=\"84\">\n<p align=\"left\">Sub Cat<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">Group<\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\">2022-12<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">cost <\/p>\n<\/td>\n<td>\n<p align=\"left\">revenue<\/p>\n<\/td>\n<td>\n<p align=\"left\">q-ty<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">11437<\/p>\n<\/td>\n<td data-colwidth=\"107\" width=\"107\">\n<p align=\"left\">art 1<\/p>\n<\/td>\n<td data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">M<\/p>\n<\/td>\n<td data-colwidth=\"79\" width=\"79\">\n<p align=\"left\">Cat 1<\/p>\n<\/td>\n<td data-colwidth=\"84\" width=\"84\">\n<p align=\"left\">Sub Cat 2<\/p>\n<\/td>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">Group 3<\/p>\n<\/td>\n<td>\n<p align=\"left\">30 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">14 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">350<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">11438<\/p>\n<\/td>\n<td data-colwidth=\"107\" width=\"107\">\n<p align=\"left\">art 2<\/p>\n<\/td>\n<td data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">O<\/p>\n<\/td>\n<td data-colwidth=\"79\" width=\"79\">\n<p align=\"left\">Cat 2<\/p>\n<\/td>\n<td data-colwidth=\"84\" width=\"84\">\n<p align=\"left\">Sub Cat 4<\/p>\n<\/td>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">Group 12<\/p>\n<\/td>\n<td>\n<p align=\"left\">24 600<\/p>\n<\/td>\n<td>\n<p align=\"left\">10 800<\/p>\n<\/td>\n<td>\n<p align=\"left\">560<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <\/p>\n<pre><code class=\"python\">df = pd.read_excel('Input_file.xlsx')  # \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u0430 df_r = df[['ID', 'Attribute', 'Category', 'Sub_cat','Group']]  #\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0441 \u0440\u0430\u0441\u0447\u0435\u0442\u0430\u043c\u0438, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e #\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442 \u0437\u0430 \u043e\u0442\u0447\u0435\u0442\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434, \u0432\u044b\u0434\u0435\u043b\u0438\u043c \u0441\u0443\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0432  #\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0445 \u043b\u0435\u0433\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c  turn_over_to_sum = [     '2022_12 cost', '2022_12 revenue',     '2023_01 cost', '2023_01 revenue',     '2023_02 cost', '2023_02 revenue',     '2023_03 cost', '2023_03 revenue',     '2023_04 cost', '2023_04 revenue',     '2023_05 cost', '2023_05 revenue' ]  df_r['turn_over'] = df.loc[:, turn_over_to_sum].sum(axis=1)   #\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0432\u0430\u043b\u043e\u0432\u0443\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c \u0437\u0430 \u043e\u0442\u0447\u0435\u0442\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 revenue_to_sum = [     '2022_12 revenue',     '2023_01 revenue',     '2023_02 revenue',     '2023_03 revenue',     '2023_04 revenue',     '2023_05 revenue' ]  df_r['revenue'] = df.loc[:, revenue_to_sum].sum(axis=1)  # \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439  qty_to_sum = [     '2022_12 qty',     '2023_01 qty',     '2023_02 qty',     '2023_03 qty',     '2023_04 qty',     '2023_05 qty' ]  df_r['total_qty'] = df.loc[:, qty_to_sum].sum(axis=1)<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u0438 \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u043d\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0437\u0430\u043a\u0443\u043f\u043a\u0438 \u043f\u043e\u0434 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430. <\/p>\n<pre><code class=\"python\">#\u0424\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 df_r_filtred = df_r[(df_r['Attribute'] == 'M') |\\                     (df_r['Attribute'] == 'O') |\\                     (df_r['Attribute'] == 'U')] <\/code><\/pre>\n<p>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u044b \u0434\u043e\u043b\u0435\u0439 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043f\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c<\/p>\n<pre><code class=\"python\"># \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043f\u043e Category df_r_filtred['%TObyCategory']=df_r_filtred['turn_over'] \/ df_r_filtred.groupby('Category')['turn_over'].transform('sum') df_r_filtred['%RVbyCategory']=df_r_filtred['revenue'] \/ df_r_filtred.groupby('Category')['revenue'].transform('sum') df_r_filtred['%QTYbyCategory']=df_r_filtred['total_qty'] \/ df_r_filtred.groupby('Category')['total_qty'].transform('sum')  # \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043f\u043e Sub_cat df_r_filtred['%TObySub_cat']=df_r_filtred['turn_over'] \/ df_r_filtred.groupby('Sub_cat')['turn_over'].transform('sum') df_r_filtred['%RVbySub_cat']=df_r_filtred['revenue'] \/ df_r_filtred.groupby('Sub_cat')['revenue'].transform('sum') df_r_filtred['%QTYbySub_cat']=df_r_filtred['total_qty'] \/ df_r_filtred.groupby('Sub_cat')['total_qty'].transform('sum')  # \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043f\u043e Group df_r_filtred['%TObyGroup']=df_r_filtred['turn_over'] \/ df_r_filtred.groupby('Group')['turn_over'].transform('sum') df_r_filtred['%RVbyGroup']=df_r_filtred['revenue'] \/ df_r_filtred.groupby('Group')['revenue'].transform('sum') df_r_filtred['%QTYbyGroup']=df_r_filtred['total_qty'] \/ df_r_filtred.groupby('Group')['total_qty'].transform('sum')<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u0438\u0442\u043e\u0433\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445, \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043d\u0443\u0436\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0435\u0437\u0430\u0445 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f. <\/p>\n<pre><code class=\"python\">df_r_filtred['TObyCategory_cum'] = df_r_filtred.sort_values('%TObyCategory', ascending=False).groupby('Category')['%TObyCategory'].cumsum() df_r_filtred['RVbyCategory_cum'] = df_r_filtred.sort_values('%RVbyCategory', ascending=False).groupby('Category')['%RVbyCategory'].cumsum() df_r_filtred['QTYbyCategory_cum'] = df_r_filtred.sort_values('%QTYbyCategory', ascending=False).groupby('Category')['%QTYbyCategory'].cumsum()  df_r_filtred['TObySub_cat_cum'] = df_r_filtred.sort_values('%TObySub_cat', ascending=False).groupby('Sub_cat')['%TObySub_cat'].cumsum() df_r_filtred['RVbySub_cat_cum'] = df_r_filtred.sort_values('%RVbySub_cat', ascending=False).groupby('Sub_cat')['%RVbySub_cat'].cumsum() df_r_filtred['QTYbySub_cat_cum'] = df_r_filtred.sort_values('%QTYbySub_cat', ascending=False).groupby('Sub_cat')['%QTYbySub_cat'].cumsum()  df_r_filtred['TObyGroup_cum'] = df_r_filtred.sort_values('%TObyGroup', ascending=False).groupby('Group')['%TObyGroup'].cumsum() df_r_filtred['RVbyGroup_cum'] = df_r_filtred.sort_values('%RVbyGroup', ascending=False).groupby('Group')['%RVbyGroup'].cumsum() df_r_filtred['QTYbyGroup_cum'] = df_r_filtred.sort_values('%QTYbyGroup', ascending=False).groupby('Group')['%QTYbyGroup'].cumsum()<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u0442\u043e\u0434 .applay() \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438  \u043f\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c.<\/p>\n<pre><code class=\"python\">#\u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u043e Category df_r_filtred['Cat_TObyCategory'] = df_r_filtred['TObyCategory_cum'].apply(abc) df_r_filtred['Cat_RVbyCategory'] = df_r_filtred['RVbyCategory_cum'].apply(abc) df_r_filtred['Cat_QTYbyCategory'] = df_r_filtred['QTYbyCategory_cum'].apply(abc)  #\u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u043e Sub_cat df_r_filtred['Cat_TObySub_cat'] = df_r_filtred['TObySub_cat_cum'].apply(abc) df_r_filtred['Cat_RVbySub_cat'] = df_r_filtred['RVbySub_cat_cum'].apply(abc) df_r_filtred['Cat_QTYbySub_cat'] = df_r_filtred['QTYbySub_cat_cum'].apply(abc)  #\u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u043e Group df_r_filtred['Cat_TObyGroup'] = df_r_filtred['TObyGroup_cum'].apply(abc) df_r_filtred['Cat_RVbyGroup'] = df_r_filtred['RVbyGroup_cum'].apply(abc) df_r_filtred['Cat_QTYbyGroup'] = df_r_filtred['QTYbyGroup_cum'].apply(abc)<\/code><\/pre>\n<p>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b Category \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e ABC &#8212; \u0430\u043d\u0430\u043b\u0438\u0437\u0430.<\/p>\n<pre><code class=\"python\">#\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u0432\u043e\u0434\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c ABC \u0432 Category \u0438 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e  #\u043f\u043e \u043a\u043e\u043b\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043f\u043e\u0437\u0438\u0446\u0438\u0439, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043f\u0440\u043e\u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446 \u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442\u0443 df_abc_byCategory = df_r_filtred.groupby('Cat_TObyCategory').agg(     total_skus=('ID', 'nunique'),     total_units=('total_qty', sum),     total_turn_over=('turn_over', sum), ).reset_index()<\/code><\/pre>\n<pre><code class=\"python\"># \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442\u0430 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0445 f, ax = plt.subplots(figsize=(15, 6)) ax = sns.barplot(x=\"Cat_TObyCategory\",                  y=\"total_turn_over\",                  data=df_abc_byTK,                  palette=\"Blues_d\")\\                 .set_title(\"Turn Over by ABC class by TK\",fontsize=15)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/890\/dee\/fa0\/890deefa07a1b74e1ca9043e98608ccc.png\" alt=\"\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430 \u041f\u0430\u0440\u0435\u0442\u043e, 80% \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442\u0430 \u0434\u0430\u044e\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 A\" title=\"\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430 \u041f\u0430\u0440\u0435\u0442\u043e, 80% \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442\u0430 \u0434\u0430\u044e\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 A\" width=\"1231\" height=\"550\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/890\/dee\/fa0\/890deefa07a1b74e1ca9043e98608ccc.png\"\/><\/p>\n<div><figcaption>\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430 \u041f\u0430\u0440\u0435\u0442\u043e, 80% \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442\u0430 \u0434\u0430\u044e\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 A<\/figcaption><\/div>\n<\/figure>\n<pre><code class=\"python\">#\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u0445  f, ax = plt.subplots(figsize=(15, 6)) ax = sns.barplot(x=\"Cat_TObyCategory\",                  y=\"total_skus\",                  data=df_abc_byTK,                  palette=\"Blues_d\")\\                 .set_title(\"SKUs by ABC class by TK\",fontsize=15)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e1b\/4a9\/54c\/e1b4a954cc4a0e6b52229df859ec41b9.png\" alt=\"\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u0439 (\u0431\u043e\u043b\u0435\u0435 5000 SKU) \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 C\" title=\"\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u0439 (\u0431\u043e\u043b\u0435\u0435 5000 SKU) \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 C\" width=\"1249\" height=\"552\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e1b\/4a9\/54c\/e1b4a954cc4a0e6b52229df859ec41b9.png\"\/><\/p>\n<div><figcaption>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u0439 (\u0431\u043e\u043b\u0435\u0435 5000 SKU) \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 C<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0443\u0436\u0435 \u0432\u0438\u0434\u0438\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0432 \u0442\u043e\u043c \u0447\u0442\u043e \u0442\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f, \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 C. <br \/>\u041d\u0443\u0436\u043d\u043e \u0441\u0440\u043e\u0447\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0446\u0430\u043c \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430, \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u0432\u044b\u0448\u0430\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430. <\/p>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043d\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0431\u0438\u0437\u043d\u0435\u0441\u0443 \u044f\u0437\u044b\u043a. \u0418\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438 \u0432\u044b\u0448\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<pre><code class=\"python\">#\u043e\u0431\u044a\u0435\u0434\u0435\u043d\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0432 \u0435\u0434\u0438\u043d\u044b\u0439. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u044d\u0442\u043e \u043f\u043e \u0441\u0440\u0435\u0437\u0430\u043c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 df_r_filtred['ABCbyCategory'] = df_r_filtred['Cat_TObyCategory'] + df_r_filtred['Cat_RVbyCategory'] + df_r_filtred['Cat_QTYbyCategory'] df_r_filtred['ABCbySub_cat'] = df_r_filtred['Cat_TObySub_cat'] + df_r_filtred['Cat_RVbySub_cat'] + df_r_filtred['Cat_QTYbySub_cat'] df_r_filtred['ABCbyGroup'] = df_r_filtred['Cat_TObyGroup'] + df_r_filtred['Cat_RVbyGroup'] + df_r_filtred['Cat_QTYbyGroup']  #\u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a-\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e \u0432 \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0439 #\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 df_r_filtred['CATbyCategory'] = df_r_filtred['ABCbyCategory'].apply(category) df_r_filtred['CATbySub_cat'] = df_r_filtred['ABCbySub_cat'].apply(category) df_r_filtred['CATbyGroup'] = df_r_filtred['ABCbyGroup'].apply(category)<\/code><\/pre>\n<p>\u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0447\u0435\u0441\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043e\u0442\u0447\u0435\u0442\u0430. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0432\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442 \u043d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e. \u041c\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0448\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043d\u043e\u0432\u0438\u043d\u043a\u0430\u043c\u0438 \u0442\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u043f\u0435\u0440\u0438\u043e\u0434, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0447\u0435\u0442. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u043e \u0434\u0430\u0442\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u0430 \u043d\u0430 \u0441\u043a\u043b\u0430\u0434. \u041d\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043c\u043d\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043b\u0435\u0433\u043a\u0438\u043c \u043f\u0443\u0442\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u0438\u043d\u044f\u043b \u0437\u0430 \u043f\u043e\u0440\u043e\u0433 \u043e\u0442\u0441\u0435\u0447\u043a\u0438 ID \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u043b\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u0443\u044e \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e \u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0442\u043e\u0447\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c,  \u0441 \u043a\u0430\u043a\u043e\u0433\u043eID \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0432 \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u043c \u043f\u0435\u0440\u0438\u043e\u0434\u0435<\/p>\n<pre><code class=\"python\">df_r_filtred.loc[df_r_filtred['ID'] > 1705727, 'CATbyCategory'] = \"NEW\" df_r_filtred.loc[df_r_filtred['ID'] > 1705727, 'CATbySub_cut'] = \"NEW\" df_r_filtred.loc[df_r_filtred['ID'] > 1705727, 'CATbyGroup'] = \"NEW\"<\/code><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u0438\u0437 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043c\u044b \u044d\u0442\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043d\u0435 \u0443\u0431\u0438\u0440\u0430\u0435\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u0442\u0430\u043a\u0436\u0435 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u043e\u0431\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430, \u043d\u043e \u043d\u0435 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u043c, \u0434\u0430\u0432\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0438\u043c \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430. <\/p>\n<p>\u041f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0442\u0447\u0435\u0442 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0433\u0440\u0443\u043f\u043f\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430, \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b<\/p>\n<h2>ABC-XYZ \u0430\u043d\u0430\u043b\u0438\u0437. \u041f\u043e\u043c\u043e\u0433\u0430\u0435\u043c \u0437\u0430\u043a\u0443\u043f\u043a\u0430\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0430\u0441\u0430\u043c\u0438<\/h2>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0439\u043c\u0435\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u043c\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430. <\/p>\n<p>ABC \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u043f\u043e\u0437\u0438\u0446\u0438\u0439, \u0438 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u041f\u0430\u0440\u0435\u0442\u043e, \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u0440\u0438\u043d\u043e\u0441\u044f\u0449\u0438\u0435 80% \u043f\u0440\u0438\u0431\u044b\u043b\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0435 A, \u0438 \u0437\u0430 \u043d\u0438\u043c\u0438 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435 \u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435. <\/p>\n<p>\u041f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u043a \u0442\u043e\u0432\u0430\u0440\u0430\u043c \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u0434\u0432\u0435\u0440\u0436\u0435\u043d \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d\u044b \u0441\u0435\u0437\u043e\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043b\u0438 \u0432\u044b\u0437\u0432\u0430\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a \u044d\u0442\u0430\u043f\u044b \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0446\u0438\u0438, \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432 \u0438\u043b\u0438 \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u044b\u0435 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0438. \u0412\u0441\u0435 \u044d\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u0441\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u043e\u0432\u0430\u0440\u044b, \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044f \u0440\u0438\u0441\u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0445, \u0438 \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0430\u0441\u043e\u0432.<\/p>\n<p>\u0418 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 XYZ \u0430\u043d\u0430\u043b\u0438\u0437. \u041e\u043d \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u0441\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0438 \u043e\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e. <br \/>\u041f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 X \u0438\u043c\u0435\u044e\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0441\u0435\u0437\u043e\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u0435, \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043b\u0435\u0433\u043a\u043e, \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0442\u043e\u0432\u0430\u0440\u0430 \u043b\u0435\u0433\u043a\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c. <br \/>\u041f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 Y \u0438\u043c\u0435\u044e\u0442  \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0441\u0442\u044c, \u0441\u043f\u0440\u043e\u0441\u0430, \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0441\u0435\u0437\u043e\u043d\u0430, \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043f\u0430\u0441\u044b \u043f\u043e \u043d\u0438\u043c \u0441\u043b\u043e\u0436\u043d\u0435\u0435. <br \/>\u041f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 Z \u0438\u043c\u0435\u044e\u0442 \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u0438\u0445 \u0442\u0440\u0443\u0434\u043d\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u043e \u043d\u0438\u043c \u0437\u0430\u043f\u0430\u0441\u044b. <\/p>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043a\u043b\u0430\u0434  \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432 \u043f\u0440\u043e\u0434\u0430\u0436\u0438, \u043d\u043e \u0438 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u0441\u043f\u0440\u043e\u0441\u0430, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443 \u043f\u043e \u0437\u0430\u043a\u0443\u043f\u043a\u0430\u043c \u043f\u043e\u043b\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430 \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u0443\u043f\u043a\u0430\u043c\u0438 \u0438 \u0437\u0430\u043f\u0430\u0441\u0430\u043c\u0438. <\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0440\u0430\u0437\u0443 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u0443\u0435\u043c \u044d\u0442\u0438 \u043a\u043b\u0430\u0441\u0441\u044b \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0437\u0430\u043f\u0430\u0441\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0432 \u043a\u043e\u0434.<\/p>\n<p><strong>\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 ABC\u2011XYZ \u0430\u043d\u0430\u043b\u0438\u0437\u0430<\/strong><\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>AX<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>BX<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>CX<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0412\u044b\u0441\u043e\u043a\u0438\u0439 \u0440\u0430\u043d\u0433<\/p>\n<p align=\"left\">\u0423\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u0441\u043f\u0440\u043e\u0441<\/p>\n<p align=\"left\">\u041b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/p>\n<p align=\"left\">\u041b\u0435\u0433\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u043d\u0433<\/p>\n<p align=\"left\">\u0423\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u0441\u043f\u0440\u043e\u0441<\/p>\n<p align=\"left\">\u041b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/p>\n<p align=\"left\">\u041b\u0435\u0433\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0438\u0437\u043a\u0438\u0439 \u0440\u0430\u043d\u0433<\/p>\n<p align=\"left\">\u0423\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u0441\u043f\u0440\u043e\u0441<\/p>\n<p align=\"left\">\u041b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/p>\n<p align=\"left\">\u041b\u0435\u0433\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>AY<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>BY<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>CY<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0412\u044b\u0441\u043e\u043a\u0438\u0439 \u0440\u0430\u043d\u0433<\/p>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u044b\u0439 \u0441\u043f\u0440\u043e\u0441<\/p>\n<p align=\"left\">\u0421\u043b\u043e\u0436\u043d\u0435\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/p>\n<p align=\"left\">\u0421\u043b\u043e\u0436\u043d\u0435\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u0438\u0439  \u0440\u0430\u043d\u0433<\/p>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u044b\u0439 \u0441\u043f\u0440\u043e\u0441<\/p>\n<p align=\"left\">\u0421\u043b\u043e\u0436\u043d\u0435\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/p>\n<p align=\"left\">\u0421\u043b\u043e\u0436\u043d\u0435\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0438\u0437\u043a\u0438\u0439 \u0440\u0430\u043d\u0433<\/p>\n<p align=\"left\">\u0418\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u044b\u0439 \u0441\u043f\u0440\u043e\u0441<\/p>\n<p align=\"left\">\u0421\u043b\u043e\u0436\u043d\u0435\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/p>\n<p align=\"left\">\u0421\u043b\u043e\u0436\u043d\u0435\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>AZ<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>BZ<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>CZ<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0412\u044b\u0441\u043e\u043a\u0438\u0439 \u0440\u0430\u043d\u0433<\/p>\n<p align=\"left\">\u0421\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441<\/p>\n<p align=\"left\">\u0422\u0440\u0443\u0434\u043d\u043e  \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/p>\n<p align=\"left\">\u0422\u0440\u0443\u0434\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u043d\u0433<\/p>\n<p align=\"left\">\u0421\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441<\/p>\n<p align=\"left\">\u0422\u0440\u0443\u0434\u043d\u043e  \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/p>\n<p align=\"left\">\u0422\u0440\u0443\u0434\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0438\u0437\u043a\u0438\u0439 \u0440\u0430\u043d\u0433<\/p>\n<p align=\"left\">\u0421\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441<\/p>\n<p align=\"left\">\u0422\u0440\u0443\u0434\u043d\u043e  \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/p>\n<p align=\"left\">\u0422\u0440\u0443\u0434\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u043f\u0430\u0441\u0430\u043c\u0438.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">AX<\/p>\n<\/td>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">BX<\/p>\n<\/td>\n<td>\n<p align=\"left\">CX<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0430\u0441\u043e\u0432<\/p>\n<p align=\"left\">\u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 JIT, \u043d\u0438\u0437\u043a\u0438\u0439 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0430\u0441<\/p>\n<p align=\"left\">\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0439 \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u043e\u0439 \u0437\u0430\u043f\u0430\u0441<\/p>\n<\/td>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0430\u0441\u043e\u0432<\/p>\n<p align=\"left\">\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <\/p>\n<p align=\"left\">\u041d\u0438\u0437\u043a\u0438\u0439 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0430\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0430\u0441\u043e\u0432<\/p>\n<p align=\"left\">\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 <\/p>\n<p align=\"left\">\u041d\u0438\u0437\u043a\u0438\u0439 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0430\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">AY<\/p>\n<\/td>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">BY<\/p>\n<\/td>\n<td>\n<p align=\"left\">CY<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">\u041f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0430\u0441\u043e\u0432<\/p>\n<p align=\"left\">\u041d\u0438\u0437\u043a\u0438\u0439 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0430\u0441<\/p>\n<\/td>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">\u041f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0430\u0441\u043e\u0432<\/p>\n<p align=\"left\">\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0441\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0430\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0430\u0441\u043e\u0432<\/p>\n<p align=\"left\">\u0412\u044b\u0441\u043e\u043a\u0438\u0439 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0430\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">AZ<\/p>\n<\/td>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">BZ<\/p>\n<\/td>\n<td>\n<p align=\"left\">CZ<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">\u0417\u0430\u043a\u0443\u043f\u043a\u0438 \u043f\u043e\u0434 \u0437\u0430\u043a\u0430\u0437<\/p>\n<p align=\"left\">\u0411\u0435\u0437 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0430\u0441\u0430<\/p>\n<p align=\"left\">\u0411\u0435\u0437 \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u0438\u0445 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432<\/p>\n<\/td>\n<td data-colwidth=\"234\" width=\"234\">\n<p align=\"left\">\u0417\u0430\u043a\u0443\u043f\u043a\u0438 \u043f\u043e\u0434 \u0437\u0430\u043a\u0430\u0437<\/p>\n<p align=\"left\">\u0411\u0435\u0437 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0430\u0441\u0430<\/p>\n<p align=\"left\">\u0423\u0434\u043b\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u0440\u043e\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u0437\u043e\u0432<\/p>\n<p align=\"left\">\u0411\u0435\u0437 \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u0438\u0445 \u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0430\u0441\u043e\u0432<\/p>\n<p align=\"left\">\u0412\u044b\u0441\u043e\u043a\u0438\u0439 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0430\u0441<\/p>\n<p align=\"left\">\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0432 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0435 <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0430\u0441\u0430\u043c\u0438  ABC XYZ \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u043d\u043e\u0433\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0437\u0430\u043f\u0430\u0441\u043e\u0432, \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u043c\u0438, \u043a\u0430\u043a HML, VED, SDF, SOS, GOLF \u0438 FNS. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0437\u0430\u043f\u0430\u0441\u043e\u0432, \u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0443\u0447\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0437\u0430\u043f\u0430\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043e\u0442 \u0442\u0435\u043e\u0440\u0438\u0438 \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434 \u0434\u043b\u044f ABC &#8212; XYZ \u0430\u043d\u0430\u043b\u0438\u0437\u0430. <br \/>\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c.<\/p>\n<pre><code class=\"python\"># \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 XYZ def xyz_classify_product(cov):     if cov &lt;= 0.5:         return 'X'     elif cov > 0.5 and cov &lt;= 1.0:         return 'Y'     else:         return 'Z'  # \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0430\u043d\u0434\u0435\u0441\u0442\u0435\u043d\u0434\u0438\u043d\u0433 def understending(arg):     values = {         \"AX\": '\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c',         \"BX\": '\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c',         \"CX\": '\u041d\u0438\u0437\u043a\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c',         \"AY\": '\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c',         \"BY\": '\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c',         \"CY\": '\u041d\u0438\u0437\u043a\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c',         \"AZ\": '\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u0442\u0440\u0443\u0434\u043d\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0442\u0440\u0443\u0434\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c',         \"BZ\": '\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u0442\u0440\u0443\u0434\u043d\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0442\u0440\u0443\u0434\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c',         \"CZ\": '\u041d\u0438\u0437\u043a\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0441\u043f\u043e\u043d\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441, \u0442\u0440\u0443\u0434\u043d\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0442\u0440\u0443\u0434\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c',         \"Cnan\": '\u041d\u0435\u0442 \u043f\u0440\u043e\u0434\u0430\u0436'     }     return values.get(arg)   # \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043c\u0435\u043d\u0434\u0436\u043c\u0435\u043d\u0442 def managment(arg):     strategies = {         \"AX\": '\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u043d\u0438\u0437\u043a\u0438\u0439 \u0431\u0443\u0444\u0435\u0440, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 JIT',         \"BX\": '\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u043f\u0435\u0440\u0435\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0441\u0447\u0435\u0442, \u043d\u0438\u0437\u043a\u0438\u0439 \u0431\u0443\u0444\u0435\u0440',         \"CX\": '\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u043f\u0435\u0440\u0435\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430, \u043d\u0438\u0437\u043a\u0438\u0439 \u0431\u0443\u0444\u0435\u0440',         \"AY\": '\u041f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u043d\u0438\u0437\u043a\u0438\u0439 \u0431\u0443\u0444\u0435\u0440',         \"BY\": '\u041f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u0441\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0431\u0443\u0444\u0435\u0440 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u0440\u0443\u0447\u043d\u0443\u044e',         \"CY\": '\u041f\u043e\u043b\u0443\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0431\u0443\u0444\u0435\u0440',         \"AZ\": '\u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u043f\u043e\u0434 \u0437\u0430\u043a\u0430\u0437, \u043d\u0435\u0442 \u0431\u0443\u0444\u0435\u0440\u0430, \u043d\u0435\u0442 \u0437\u0430\u043f\u0430\u0441\u0430',         \"BZ\": '\u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u043f\u043e\u0434 \u0437\u0430\u043a\u0430\u0437, \u043d\u0435\u0442 \u0431\u0443\u0444\u0435\u0440\u0430, \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u043d\u0435\u0442 \u0437\u0430\u043f\u0430\u0441\u0430',         \"CZ\": '\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0431\u0443\u0444\u0435\u0440, \u043f\u0435\u0440\u0435\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430',         \"Cnan\": '\u0412\u044b\u0432\u043e\u0434 \u0438\u0437 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0435\u0441\u043b\u0438 \u043d\u0435 \u043d\u043e\u0432\u0438\u043d\u043a\u0430'     }     return strategies.get(arg)        <\/code><\/pre>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043e\u0442\u0447\u0435\u0442\u0443 \u0438 \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u043d\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f XYZ \u0430\u043d\u0430\u043b\u0438\u0437\u0430.<\/p>\n<pre><code class=\"python\">#\u041e\u0442\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u043f\u043e \u043b\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043f\u0440\u043e\u0434\u0430\u0436 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0433\u043e\u0434\u0430 df_12m_units = df[['ID','Attribute','2022_06 qty',\\                                     '2022_07 qty',\\                                     '2022_08 qty',\\                                     '2022_09 qty',\\                                     '2022_10 qty',\\                                     '2022_11 qty',\\                                     '2022_12 qty',\\                                     '2023_01 qty',\\                                     '2023_02 qty',\\                                     '2023_03 qty',\\                                     '2023_04 qty',\\                                     '2023_05 qty']]  #\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b df_12m_units.columns = ['ID','Attribute','m1','m2','m3','m4','m5','m6','m7','m8','m9','m10','m11','m12']  #\u041e\u0442\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 df_12m_units = df_12m_units[(df_12m_units['Attribute'] == 'O') |\\                             (df_12m_units['Attribute'] == 'M') |\\                             (df_12m_units['Attribute'] == 'U') <\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435  \u0440\u0430\u0441\u0447\u0435\u0442\u044b \u043c\u0435\u0442\u0440\u0438\u043a \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0439<\/p>\n<pre><code class=\"python\">#\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0438 \u0441\u043f\u0440\u043e\u0441\u0430 df_12m_units['std_demand'] = df_12m_units[['m1','m2','m3','m4','m5','m6','m7',\\                                            'm8','m9','m10','m11','m12']].std(axis=1)  #\u043e\u0431\u0449\u0438\u0439 \u0433\u043e\u0434\u043e\u0432\u043e\u0439 \u0441\u043f\u0440\u043e\u0441 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 df_12m_units = df_12m_units.assign(total_demand = df_12m_units['m1'] + df_12m_units['m2'] +\\                                                   df_12m_units['m3'] + df_12m_units['m4'] +\\                                                   df_12m_units['m5'] + df_12m_units['m6'] +\\                                                   df_12m_units['m7'] + df_12m_units['m8'] +\\                                                   df_12m_units['m9'] + df_12m_units['m10'] +\\                                                   df_12m_units['m11'] + df_12m_units['m12'])  #\u0441\u0440\u0435\u0434\u043d\u0435\u043c\u0435\u0441\u044f\u0447\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441 df_12m_units = df_12m_units.assign(avg_demand = df_12m_units['total_demand'] \/ 12 )  #\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0441\u0440\u043f\u043e\u0441\u0430 df_12m_units['cov_demand'] = df_12m_units['std_demand'] \/ df_12m_units['avg_demand']<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u044b, \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044e xyz_classify_product() \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 .applay() \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c<\/p>\n<pre><code class=\"python\">df_12m_units['xyz_class'] = df_12m_units['cov_demand'].apply(xyz_classify_product) df_12m_units.xyz_class.value_counts()  \u0412\u044b\u0432\u043e\u0434: Z    4095 Y    1892 X     725 Name: xyz_class, dtype: int64 <\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 XYZ \u0430\u043d\u0430\u043b\u0438\u0437\u0430<\/p>\n<pre><code class=\"python\">#\u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0430\u0433\u0440\u0435\u0433\u0438\u0440\u0443\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 df_12m_units.groupby('xyz_class').agg(     total_skus=('ID', 'nunique'),     total_demand=('total_demand', 'sum'),     std_demand=('std_demand', 'mean'),     avg_demand=('avg_demand', 'mean'),     avg_cov_demand=('cov_demand', 'mean'), )  #\u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c \u0438 \u043c\u0435\u0441\u044f\u0446\u0430\u043c \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 df_monthly = df_12m_units.groupby('xyz_class').agg(     m1=('m1', 'sum'),     m2=('m2', 'sum'),     m3=('m3', 'sum'),     m4=('m4', 'sum'),     m5=('m5', 'sum'),     m6=('m6', 'sum'),     m7=('m7', 'sum'),     m8=('m8', 'sum'),     m9=('m9', 'sum'),     m10=('m10', 'sum'),     m11=('m11', 'sum'),     m12=('m12', 'sum'), ) #\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u043f\u043e \u043c\u0435\u0441\u044f\u0446\u0430\u043c, \u043a\u043b\u0430\u0441\u0441\u0430\u043c \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0448\u0442 df_monthly_unstacked = df_monthly.unstack('xyz_class').to_frame() df_monthly_unstacked = df_monthly_unstacked.reset_index().rename(columns={'level_0': 'month', 0: 'demand'})  <\/code><\/pre>\n<p>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<pre><code class=\"python\">f, ax = plt.subplots(figsize=(15, 6)) ax = sns.barplot(x=\"month\",                  y=\"demand\",                  hue=\"xyz_class\",                  data=df_monthly_unstacked,                  palette=\"Blues_d\")\\                 .set_title(\"XYZ demand by month\",fontsize=15)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a6b\/fa9\/be7\/a6bfa9be7aef77528e79cb078544299b.png\" width=\"1264\" height=\"549\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a6b\/fa9\/be7\/a6bfa9be7aef77528e79cb078544299b.png\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438 \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u0435 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044e \u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u043f\u0430\u0441\u0430\u043c\u0438 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 ABC-XYZ<\/p>\n<pre><code class=\"python\">#\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043f\u0438\u0438 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u043e\u0432 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u0447\u0435\u0442\u0430 df_xyz = df_12m_units.copy() df_abc = df_r_filtred.copy()<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0434\u0432\u0430 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u0430 \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c  \u043a\u043b\u0430\u0441\u0441\u044b. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0432 ABC \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u044b \u043a\u0430\u0440\u0442\u0438\u043d\u044b \u043c\u044b \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u043e \u0442\u0440\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u0414\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0433\u0440\u0443\u043f\u043f\u0443 Category, \u043d\u043e \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u0443\u044e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043f\u043e \u0434\u0432\u0443\u043c \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u0430\u043c<\/p>\n<pre><code class=\"python\">#\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0434\u0432\u0430 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 df_abc_xyz = df_abc.merge(df_xyz, on='ID', how='left')  #\u0441\u043e\u0437\u0434\u0430\u0435\u043c abc_xyz class df_abc_xyz['abc_xyz_class'] = df_abc_xyz['Cat_TObyCategory'].astype(str) + df_abc_xyz['xyz_class'].astype(str)  #\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0437\u0430\u043f\u0430\u0441\u0430\u043c\u0438  df_abc_xyz['understanding'] = df_abc_xyz['abc_xyz_class'].apply(understending) df_abc_xyz['managment'] = df_abc_xyz['abc_xyz_class'].apply(managment) <\/code><\/pre>\n<p>\u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438<\/p>\n<pre><code class=\"python\">df_abc_xyz_summary = df_abc_xyz.groupby('abc_xyz_class').agg(     total_skus=('\u0410\u0440\u0442\u0438\u043a\u0443\u043b', 'nunique'),     total_demand=('total_demand', sum),     avg_demand=('avg_demand', 'mean'),     total_turn_over=('turn_over', sum), ).reset_index()  df_abc_xyz_summary.sort_values(by='total_turn_over', ascending=False)  f, ax = plt.subplots(figsize=(15, 6)) ax = sns.barplot(x=\"abc_xyz_class\",                  y=\"total_skus\",                  data=df_abc_xyz_summary,                  palette=\"Blues_d\")\\                 .set_title(\"SKUs by ABC-XYZ class\",fontsize=15)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0df\/8ae\/899\/0df8ae899642630f5a5a8e0363bad42d.png\" alt=\"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c\" title=\"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c\" width=\"1247\" height=\"549\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0df\/8ae\/899\/0df8ae899642630f5a5a8e0363bad42d.png\"\/><\/p>\n<div><figcaption>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0430\u043c<\/figcaption><\/div>\n<\/figure>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435, \u0430\u043a\u0446\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0440\u044f\u0434\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f. <\/p>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u044b ABC XYZ \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u041e\u0447\u0435\u043d\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f. <a href=\"https:\/\/practicaldatascience.co.uk\/data-science\/how-to-create-an-abc-xyz-inventory-classification-model\" rel=\"noopener noreferrer nofollow\">\u0421\u0441\u044b\u043b\u043a\u0430 \u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>\u0421 \u0443\u0432\u0430\u0436\u0435\u043d\u0438\u0435\u043c, <br \/>Data Scientist, \u0412\u044f\u0447\u0435\u0441\u043b\u0430\u0432 \u0413\u0443\u0441\u0435\u0432<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/811991\/\"> https:\/\/habr.com\/ru\/articles\/811991\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>ABC \u0430\u043d\u0430\u043b\u0438\u0437, \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442 \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f<\/h2>\n<p>\u0412 \u043e\u0434\u043d\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043e-\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0433\u0434\u0435 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439\u043d\u044b\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0437\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ABC \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u041e \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043c\u043d\u043e\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f, \u043e\u043f\u0438\u0448\u0443 \u0441\u0432\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u0438\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. <\/p>\n<p>\u0423 \u043d\u0430\u0441 \u0431\u044b\u043b\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0448\u0438\u0440\u043e\u043a\u0430\u044f \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 , \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0442\u0440\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f. \u0410\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e , \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430.<\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0431\u044b\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u0432 \u042d\u043a\u0441\u0435\u043b\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 OLAP &#8212; \u043a\u0443\u0431\u0430. \u041f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0432 \u0435\u0435 , \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0440\u044f\u0434 \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430  &#8212; \u044d\u0442\u043e  \u0440\u0443\u0447\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443\u0442 \u043a \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0438\u0437 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0449\u0435 \u0438 \u0440\u044f\u0434 \u043f\u043e\u0437\u0438\u0446\u0438\u0439: \u043d\u043e\u0432\u0438\u043d\u043a\u0438, \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a, \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0437\u0430\u043a\u0443\u043f\u043e\u043a \u043f\u043e\u0434 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0438.\u0442.\u0434. \u041a\u0430\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c\u0438 \u0438 \u0440\u0438\u0441\u043a \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0444\u0438\u043b\u044c\u0442\u0440 \u0431\u0443\u0434\u0435\u0442 \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0435\u043b\u0438\u043a. \u041d\u0443 \u0438 \u043f\u043b\u044e\u0441 \u0432\u0440\u0435\u043c\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u0440\u0443\u0434\u0430 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u0436\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0433\u043e.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u0437 OLAP &#8212; \u043a\u0443\u0431\u0430 \u0432 \u043e\u0442\u0447\u0435\u0442 \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c  \u0432 \u043e\u0442\u0447\u0435\u0442\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0431\u044b\u043b\u0438 \u043f\u0440\u043e\u0434\u0430\u0436\u0438. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0432\u0435\u0434\u044c \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0434\u0430\u0436, \u0430 \u0442\u0435 \u0442\u043e\u0432\u0430\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430. \u041d\u043e \u043d\u0435 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u043d\u0435 \u043d\u0430 \u044f\u0431\u043b\u043e\u043a\u0430\u0445, \u0433\u0440\u0443\u0448\u0430\u0445, \u0431\u0430\u043d\u0430\u043d\u0430\u0445 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0430 \u043f\u043e\u043b\u044f\u0445 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430, \u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0431\u043e\u043b\u0435\u0435 9000 SKU, \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u043f\u043e \u043a\u043e\u043d\u0441\u0438\u0441\u0442\u0435\u043d\u0446\u0438\u0438 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e, \u0438\u043c\u0435\u044e\u0449\u0435\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u044b\u0435 \u043b\u0438\u043d\u0435\u0439\u043a\u0438 \u0438 \u043c\u043e\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u044f\u0434\u044b, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0446\u0435\u043d\u043e\u0432\u044b\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b, \u0431\u0440\u0435\u043d\u0434\u043e\u0432\u043e\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u043f\u043e\u0434 \u043a\u0430\u043d\u0430\u043b\u044b \u043f\u0440\u043e\u0434\u0430\u0436. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439\u043d\u043e\u043c\u0443 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443  \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0432\u043e\u0435\u043c \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0435, \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u0445 \u0431\u0435\u0437 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432 \u0435\u0434\u0438\u043d\u043e\u043c \u043e\u0442\u0447\u0435\u0442\u0435.<\/p>\n<\/li>\n<li>\n<p>ABC \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f  \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f. \u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f \u0431\u044b\u043b\u043e \u043d\u0435\u0440\u0430\u0432\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u043c, \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0438\u0436\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0433\u043b\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e SKU, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u043b\u0438 \u0440\u0430\u0437\u043d\u0443\u044e \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430, \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u0441\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u044f\u043c \u0442\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b , \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439\u043d\u043e\u043c\u0443 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443, \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u043c\u0443 \u0437\u043d\u0430\u0447\u0438\u043c\u043e\u0441\u0442\u044c \u0438 \u043b\u043e\u0433\u0438\u043a\u0443 \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0438\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439. <\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e ABC \u043f\u043e \u0442\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c: \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442\u0443, \u0432\u0430\u043b\u043e\u0432\u043e\u043c\u0443 \u0434\u043e\u0445\u043e\u0434\u0443 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043f\u0440\u043e\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430. \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043f\u043e \u0442\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c, \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432 \u043e\u0431\u0449\u0435\u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b\u0430\u0441\u044c \u0432 \u0441\u0432\u043e\u044e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u0443\u044e \u043d\u0438\u0448\u0443. <\/p>\n<p>\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e ABC \u0430\u043d\u0430\u043b\u0438\u0437\u0430, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 Excel \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0435\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u0430. <\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 Python. \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043a\u043e\u0434\u0443 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0442\u0447\u0435\u0442\u0430. <\/p>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"python\">import pandas as pd import seaborn as sns import matplotlib.pyplot as plt<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f: \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u043c \u0438\u0442\u043e\u0433\u043e\u043c \u0432 80% \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u043e\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u043a\u043b\u0430\u0441\u0441 A, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043e\u0442 80% \u0434\u043e 95% &#8212; \u043a\u043b\u0430\u0441\u0441 B, \u043e\u0442 95% \u0434\u043e 100%  &#8212; \u043a\u043b\u0430\u0441\u0441 \u0421. <br \/>\u0414\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0430\u0441\u0441\u044b \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u0442\u043e\u0433\u043e\u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u0441\u0430\u043c\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0432 \u043a\u043e\u0434\u0435 \u043d\u0438\u0436\u0435.<\/p>\n<pre><code class=\"python\">def abc(cum):   if cum &lt;= 0.8:     return 'A'   elif cum &lt;= 0.95:     return 'B'   else:     return 'C'<\/code><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043e\u0431\u0449\u0435\u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0445 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430\u0445.<br \/>M &#8212; \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430<br \/>O &#8212; \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430<br \/>U &#8212; \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u043e\u0434 \u0437\u0430\u043a\u0430\u0437<br \/>W &#8212; \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434 \u0438\u0437 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e: \u043a\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u043c\u044b \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043f\u043e \u0442\u0440\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c: \u0422\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442, \u0412\u0430\u043b\u043e\u0432\u0430\u044f \u043f\u0440\u0438\u0431\u044b\u043b\u044c, \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u044b \u0434\u043b\u044f \u0442\u0440\u0435\u0445 \u043c\u0435\u0442\u0440\u0438\u043a, \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u0432 \u0435\u0434\u0438\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441, \u043d\u0430 \u0431\u0430\u0437\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u0430\u0435\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435.<\/p>\n<pre><code class=\"python\">def category(arg):     categories = {         \"AAA\": 'M', \"AAB\": 'M', \"ABA\": 'M', \"ABB\": 'M',         \"ACA\": 'M', \"BAA\": 'M', \"BBA\": 'M',         \"AAC\": 'O', \"ABC\": 'O', \"ACB\": 'O', \"ACC\": 'O',         \"BAB\": 'O', \"BAC\": 'O', \"BBB\": 'O', \"BBC\": 'O',         \"BCA\": 'O', \"CAA\": 'O', \"CAB\": 'O', \"CBA\": 'O',         \"BCB\": 'U', \"BCC\": 'U', \"CAC\": 'U',         \"CBB\": 'U', \"CBC\": 'U'     }     return categories.get(arg, 'W')<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 .get() \u0441\u043b\u043e\u0432\u0430\u0440\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0435\u0441\u043b\u0438 \u043e\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435, \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 &#8216;W&#8217; (\u0432\u044b\u0432\u043e\u0434 \u0438\u0437 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e), \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u043d\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f ABC \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u044f \u0432\u0437\u044f\u043b \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442\u0447\u0435\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b\u0438\u0441\u044c \u0412\u0421\u0415 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 \u0431\u044b\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043f\u0440\u043e\u0434\u0430\u0436\u0430\u043c \u043f\u043e\u043c\u0435\u0441\u044f\u0447\u043d\u043e. <br \/>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0442\u0447\u0435\u0442\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439: <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td rowspan=\"2\" data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">ID<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"107\" width=\"107\">\n<p align=\"left\">Description<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">Attribute<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"79\" width=\"79\">\n<p align=\"left\">Category<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"84\" width=\"84\">\n<p align=\"left\">Sub Cat<\/p>\n<\/td>\n<td rowspan=\"2\" data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">Group<\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"left\">2022-12<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">cost <\/p>\n<\/td>\n<td>\n<p align=\"left\">revenue<\/p>\n<\/td>\n<td>\n<p align=\"left\">q-ty<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">11437<\/p>\n<\/td>\n<td data-colwidth=\"107\" width=\"107\">\n<p align=\"left\">art 1<\/p>\n<\/td>\n<td data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">M<\/p>\n<\/td>\n<td data-colwidth=\"79\" width=\"79\">\n<p align=\"left\">Cat 1<\/p>\n<\/td>\n<td data-colwidth=\"84\" width=\"84\">\n<p align=\"left\">Sub Cat 2<\/p>\n<\/td>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">Group 3<\/p>\n<\/td>\n<td>\n<p align=\"left\">30 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">14 000<\/p>\n<\/td>\n<td>\n<p align=\"left\">350<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"58\" width=\"58\">\n<p align=\"left\">11438<\/p>\n<\/td>\n<td data-colwidth=\"107\" width=\"107\">\n<p align=\"left\">art 2<\/p>\n<\/td>\n<td data-colwidth=\"71\" width=\"71\">\n<p align=\"left\">O<\/p>\n<\/td>\n<td data-colwidth=\"79\" width=\"79\">\n<p align=\"left\">Cat 2<\/p>\n<\/td>\n<td data-colwidth=\"84\" width=\"84\">\n<p align=\"left\">Sub Cat 4<\/p>\n<\/td>\n<td data-colwidth=\"82\" width=\"82\">\n<p align=\"left\">Group 12<\/p>\n<\/td>\n<td>\n<p align=\"left\">24 600<\/p>\n<\/td>\n<td>\n<p align=\"left\">10 800<\/p>\n<\/td>\n<td>\n<p align=\"left\">560<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <\/p>\n<pre><code class=\"python\">df = pd.read_excel('Input_file.xlsx')  # \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u0430 df_r = df[['ID', 'Attribute', 'Category', 'Sub_cat','Group']]  #\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0441 \u0440\u0430\u0441\u0447\u0435\u0442\u0430\u043c\u0438, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e #\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442 \u0437\u0430 \u043e\u0442\u0447\u0435\u0442\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434, \u0432\u044b\u0434\u0435\u043b\u0438\u043c \u0441\u0443\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0432  #\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0445 \u043b\u0435\u0433\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c  turn_over_to_sum = [     '2022_12 cost', '2022_12 revenue',     '2023_01 cost', '2023_01 revenue',     '2023_02 cost', '2023_02 revenue',     '2023_03 cost', '2023_03 revenue',     '2023_04 cost', '2023_04 revenue',     '2023_05 cost', '2023_05 revenue' ]  df_r['turn_over'] = df.loc[:, turn_over_to_sum].sum(axis=1)   #\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0432\u0430\u043b\u043e\u0432\u0443\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c \u0437\u0430 \u043e\u0442\u0447\u0435\u0442\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 revenue_to_sum = [     '2022_12 revenue',     '2023_01 revenue',     '2023_02 revenue',     '2023_03 revenue',     '2023_04 revenue',     '2023_05 revenue' ]  df_r['revenue'] = df.loc[:, revenue_to_sum].sum(axis=1)  # \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439  qty_to_sum = [     '2022_12 qty',     '2023_01 qty',     '2023_02 qty',     '2023_03 qty',     '2023_04 qty',     '2023_05 qty' ]  df_r['total_qty'] = df.loc[:, qty_to_sum].sum(axis=1)<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u0438 \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u043d\u044b\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0437\u0430\u043a\u0443\u043f\u043a\u0438 \u043f\u043e\u0434 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430. <\/p>\n<pre><code class=\"python\">#\u0424\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 df_r_filtred = df_r[(df_r['Attribute'] == 'M') |\\                     (df_r['Attribute'] == 'O') |\\                     (df_r['Attribute'] == 'U')] <\/code><\/pre>\n<p>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u044b \u0434\u043e\u043b\u0435\u0439 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043f\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c<\/p>\n<pre><code class=\"python\"># \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043f\u043e Category df_r_filtred['%TObyCategory']=df_r_filtred['turn_over'] \/ df_r_filtred.groupby('Category')['turn_over'].transform('sum') df_r_filtred['%RVbyCategory']=df_r_filtred['revenue'] \/ df_r_filtred.groupby('Category')['revenue'].transform('sum') df_r_filtred['%QTYbyCategory']=df_r_filtred['total_qty'] \/ df_r_filtred.groupby('Category')['total_qty'].transform('sum')  # \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043f\u043e Sub_cat df_r_filtred['%TObySub_cat']=df_r_filtred['turn_over'] \/ df_r_filtred.groupby('Sub_cat')['turn_over'].transform('sum') df_r_filtred['%RVbySub_cat']=df_r_filtred['revenue'] \/ df_r_filtred.groupby('Sub_cat')['revenue'].transform('sum') df_r_filtred['%QTYbySub_cat']=df_r_filtred['total_qty'] \/ df_r_filtred.groupby('Sub_cat')['total_qty'].transform('sum')  # \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043f\u043e Group df_r_filtred['%TObyGroup']=df_r_filtred['turn_over'] \/ df_r_filtred.groupby('Group')['turn_over'].transform('sum') df_r_filtred['%RVbyGroup']=df_r_filtred['revenue'] \/ df_r_filtred.groupby('Group')['revenue'].transform('sum') df_r_filtred['%QTYbyGroup']=df_r_filtred['total_qty'] \/ df_r_filtred.groupby('Group')['total_qty'].transform('sum')<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u0438\u0442\u043e\u0433\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445, \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 \u043d\u0443\u0436\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0435\u0437\u0430\u0445 \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f. <\/p>\n<pre><code class=\"python\">df_r_filtred['TObyCategory_cum'] = df_r_filtred.sort_values('%TObyCategory', ascending=False).groupby('Category')['%TObyCategory'].cumsum() df_r_filtred['RVbyCategory_cum'] = df_r_filtred.sort_values('%RVbyCategory', ascending=False).groupby('Category')['%RVbyCategory'].cumsum() df_r_filtred['QTYbyCategory_cum'] = df_r_filtred.sort_values('%QTYbyCategory', ascending=False).groupby('Category')['%QTYbyCategory'].cumsum()  df_r_filtred['TObySub_cat_cum'] = df_r_filtred.sort_values('%TObySub_cat', ascending=False).groupby('Sub_cat')['%TObySub_cat'].cumsum() df_r_filtred['RVbySub_cat_cum'] = df_r_filtred.sort_values('%RVbySub_cat', ascending=False).groupby('Sub_cat')['%RVbySub_cat'].cumsum() df_r_filtred['QTYbySub_cat_cum'] = df_r_filtred.sort_values('%QTYbySub_cat', ascending=False).groupby('Sub_cat')['%QTYbySub_cat'].cumsum()  df_r_filtred['TObyGroup_cum'] = df_r_filtred.sort_values('%TObyGroup', ascending=False).groupby('Group')['%TObyGroup'].cumsum() df_r_filtred['RVbyGroup_cum'] = df_r_filtred.sort_values('%RVbyGroup', ascending=False).groupby('Group')['%RVbyGroup'].cumsum() df_r_filtred['QTYbyGroup_cum'] = df_r_filtred.sort_values('%QTYbyGroup', ascending=False).groupby('Group')['%QTYbyGroup'].cumsum()<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u0442\u043e\u0434 .applay() \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438  \u043f\u043e \u0430\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442\u043d\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c.<\/p>\n<pre><code class=\"python\">#\u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043f\u043e Category df_r_filtred['Cat_TObyCategory'] =<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-375289","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/375289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=375289"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/375289\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=375289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=375289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=375289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}