{"id":454175,"date":"2025-04-01T16:53:04","date_gmt":"2025-04-01T16:53:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=454175"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=454175","title":{"rendered":"<span>\u041a\u0430\u043a \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u043c\u043d\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u043b\u0430<\/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<h4>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440:<\/h4>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u0430 \u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 DeepSeek \u0438 GigaChat \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 &lt;\u0440\u044f\u0434\u043e\u0432\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u2013 \u043c\u0430\u0448\u0438\u043d\u0430&gt;. \u0410\u0432\u0442\u043e\u0440 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c \u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u043c\u043f\u0442-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0437\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 \u0438 \u043e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0433\u043e \u0438\u043b\u0438 \u0438\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0433\u043e \u0418\u0418. \u0410\u0432\u0442\u043e\u0440 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0447\u0435\u043c \u0432\u044b\u0431\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u0430\u043c\u043e \u0432\u0438\u0434\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043c\u044b\u0441\u043b\u0430 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u0432. \u0410\u0432\u0442\u043e\u0440 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b, \u0442\u0430\u043a \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u043c\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<h4>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u041d\u0430\u0447\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438 \u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a \u0441 \u043f\u0440\u0438\u043c\u0435\u0441\u044c\u044e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044f. \u0415\u0441\u043b\u0438 \u0442\u043e\u0447\u043d\u0435\u0435, \u0442\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u043d\u043e \u043d\u0430\u0447\u0430\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0438\u043c \u0441\u0442\u0430\u043b. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u0438\u0437 \u043e\u043f\u044b\u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438 \u0432 \u043c\u0430\u043b\u043e\u043c \u0431\u0438\u0437\u043d\u0435\u0441\u0435 \u044f \u0432\u044b\u043d\u0435\u0441 \u043b\u044e\u0431\u043e\u0432\u044c \u043a \u0446\u0438\u0444\u0440\u0430\u043c, \u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 excel. \u00a0<\/p>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043b\u0435\u0436\u0430\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0448\u0443\u043c \u0432\u043e\u043a\u0440\u0443\u0433 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 \u0438 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0432 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u0432\u0441\u0435 \u0441\u043a\u043e\u0440\u043e \u043b\u0438\u0448\u0438\u043c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u044b;    <\/p>\n<\/li>\n<li>\n<p>\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0431\u044b\u043b\u044b\u0445 \u0436\u0435\u043b\u0430\u043d\u0438\u0439 \u043e\u0431 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443;    <\/p>\n<\/li>\n<li>\n<p>\u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 \u0432 \u043f\u043b\u0430\u043d\u0435 \u043a\u043e\u0434\u0438\u043d\u0433\u0430 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0443\u0441\u0442\u044c \u0438 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u0445, \u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445; \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.    <\/p>\n<\/li>\n<\/ul>\n<h4>\u0424\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/h4>\n<p>\u0418\u0442\u0430\u043a, \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0441\u043c\u043e\u0440\u0435\u0442\u044c, \u0441\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0443\u043c\u0435\u044e\u0449\u0438\u0439 \u0445\u0443\u0434\u043e-\u0431\u0435\u0434\u043d\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e \u043c\u044b\u0441\u043b\u0438\u0442\u044c \u0438 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0438\u0437\u043b\u0430\u0433\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0433\u043e 1-2 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0435 (\u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435) \u0437\u0430\u0434\u0430\u0447\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0434\u043e\u043b\u0436\u043d\u043e \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 (\u0432\u043e\u0442 \u0441\u043e\u0432\u0441\u0435\u043c) \u0432\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u0434, \u0430 \u0431\u0443\u0434\u0443 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c \u0441 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c. \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 <strong>\u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u21161<\/strong>.<\/p>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u21162 <\/strong>\u2013 \u0432\u044b\u0431\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e, \u043d\u0435 \u0430\u0440\u0445\u0438\u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430, \u0438\u043c\u0435\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u044b\u0439 \u0431\u044d\u043a\u0433\u0440\u0430\u0443\u043d\u0434 \u0432 \u0432\u0438\u0434\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0438 \u0442.\u043f. \u0417\u0434\u0435\u0441\u044c \u044f \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u041f\u0438\u0442\u043e\u043d. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044f \u043c\u043e\u0433\u0443 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u0435\u0445\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 \u044d\u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435.<\/p>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u21163 <\/strong>\u2013 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0430\u0447 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0430 \u0434\u043e\u043b\u0436\u043d\u043e (\u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e):<\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e (\u0434\u0430, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043a\u0430 \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c).<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u043f\u043e \u0434\u0432\u0443\u043c-\u0442\u0440\u0435\u043c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430\u043c, \u0438 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 (\u043f\u0440\u0438\u0447\u0435\u043c, \u0432\u044b\u0431\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u0438\u043a \u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044e AI).<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0438\u043d\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u043a.    <\/p>\n<\/li>\n<li>\n<p>\u0418\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0434\u0430\u0442\u0435.    <\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u043b\u043e \u043d\u0430\u0439\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432. \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f, \u0447\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0441\u0435\u043c\u0435\u0439\u043d\u044b\u0439 \u0431\u044e\u0434\u0436\u0435\u0442, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0437 \u0431\u0430\u043d\u043a\u0430 xls-\u0444\u0430\u0439\u043b\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0438 \u0434\u0435\u043d\u0435\u0436\u043d\u044b\u0439 \u0441\u0440\u0435\u0434\u0441\u0442\u0432. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044f \u0440\u0435\u0448\u0438\u043b \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0442\u044b \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u0442\u0440\u0430\u0442\u0430\u043c \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432\u043f\u0435\u0440\u0435\u0434.<\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0438\u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u0440\u043e\u043c\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 (\u0438 \u0442\u043e \u043d\u0435 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438), \u043d\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0438 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c. \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432 \u043e\u043d\u043b\u0430\u0439\u043d-\u0431\u0430\u043d\u043a\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0438\u0441\u044c. \u0422\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u044b\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/strong>    <\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f<\/strong>    <\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/strong>    <\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/strong>    <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">27.01.2025    <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0441\u0442\u043e\u0440\u0430\u043d\u044b    <\/p>\n<\/td>\n<td>\n<p align=\"left\">GrillZon    <\/p>\n<\/td>\n<td>\n<p align=\"left\">2000,00    <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0431\u043e\u0440\u0430 AI, \u0442\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u0438\u0445 VPN \u043d\u0435\u0439\u0440\u043e\u043d\u043a\u0430\u0445 GigaChat \u043e\u0442 \u0421\u0431\u0435\u0440\u0430 (\u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u043a \u0441\u043b\u043e\u0432\u0443, \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c) \u0438 \u043d\u0430\u0448\u0443\u043c\u0435\u0432\u0448\u0435\u0439 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0439 DeepSeek.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u0441\u043b\u043e\u0432 \u043e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438. \u0422\u0443\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e: \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0440\u043e\u043b\u0438 &#171;\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u041f\u041a \u0441\u043e \u0437\u043d\u0430\u043d\u0438\u0435\u043c \u0412\u043e\u0440\u0434&#187;, \u0442\u043e \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0443\u043c\u0435\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e, \u043a\u0440\u043e\u043c\u0435 \u043a\u0430\u043a \u0441\u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u0438\u0437 \u0447\u0430\u0442\u0430 \u0441 AI \u0432 VSCode \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043e\u0447\u043a\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. \u041e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e, \u0445\u043e\u0442\u044c \u044d\u0442\u043e \u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043c\u043e\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u043e\u0441\u0438\u043b\u0430 \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u043f\u0442\u0430.<\/p>\n<h2>\u041f\u0438\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h2>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 1<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f:<\/p>\n<ol>\n<li>\n<p>\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041d\u043e\u043c\u0435\u0440 \u043a\u0430\u0440\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u0442\u0443\u0441.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u043b\u044e\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u043b\u044e\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e \u043e\u0442 \u0431\u043b\u0438\u0436\u043d\u0435\u0439 \u0434\u0430\u0442\u044b \u043a \u0434\u0430\u043b\u044c\u043d\u0435\u0439.<\/p>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 python desktop-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b:<\/p>\n<ol>\n<li>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u0445, \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e \u0433\u043e\u0434\u0430\u043c, \u043c\u0435\u0441\u044f\u0446\u0430\u043c \u0438 \u0447\u0438\u0441\u043b\u0430\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u043c \u043d\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0442\u0440\u0438 \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u044e\u0431\u044b\u0445 \u0442\u0440\u0435\u0445- \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043c\u0435\u0442\u043e\u0434\u0438\u043a \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0442\u043e\u0434 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u043a\u043d\u0430, \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u0438 \u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435.<\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u0438\u0434\u0435:<\/p>\n<ol>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u044d\u0442\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0430 \u043f\u043e\u043b\u044f \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u044d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0430 \u043f\u043e\u043b\u044f \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0443\u0433\u043e\u0432\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043c\u0435\u0441\u044f\u0446\u0443. <\/p>\n<\/li>\n<\/ol>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u0438\u0434\u0435:<\/p>\n<ol>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u044d\u0442\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0430 \u043f\u043e\u043b\u044f \\ \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u044d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0430 \u043f\u043e\u043b\u044f \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0443\u0433\u043e\u0432\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043c\u0435\u0441\u044f\u0446\u0443.<\/p>\n<\/li>\n<\/ol>\n<p>\u0418 \u0432\u043e\u0442 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0430\u043c\u043e\u043c \u043c\u0435\u0441\u0442\u0435 GigaChat \u0438 \u043e\u0442\u0432\u0430\u043b\u0438\u043b\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0438\u043c \u043a\u043e\u0434&#8230; \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0430 prettier \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u043a\u0440\u0430\u0441\u043d\u044b\u043c n-\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a. \u0418 \u043d\u0435\u0442, \u0434\u0435\u043b\u043e \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b, \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b. \u041e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043d\u0435\u043c\u0443 \u043f\u0438\u0441\u0430\u043b\u0441\u044f \u0432\u0442\u043e\u0440\u044b\u043c (\u043d\u0430\u0447\u0430\u043b \u044f \u0441 \u043a\u0438\u0442\u0430\u0439\u0446\u0430), \u0438 \u0432 \u043d\u0435\u043c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442, \u0438\u0431\u043e \u043f\u043e \u043d\u0430\u0432\u043e\u0434\u043a\u0435 DeepSeek \u044f \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b.<\/p>\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f &#171;\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&#187;, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u043b, \u044d\u0442\u043e \u0443\u0436\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430, \u0438\u0431\u043e, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043b\u0438\u0448\u044c \u0431\u0435\u0433\u043b\u043e\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434\u0430 \u0438 \u043c\u0435\u043b\u043a\u043e\u0439 \u043f\u0440\u0430\u0432\u043a\u0438, \u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0443\u043c\u0435\u044e (\u0438 \u043d\u0435 \u0445\u043e\u0447\u0443). \u0421\u043d\u043e\u0432\u0430 \u0447\u0443\u0442\u044c \u0437\u0430\u0431\u0435\u0433\u0443 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043b\u043b\u0435\u0433\u0438 \u0441\u0431\u0435\u0440\u043e\u0432\u0441\u043a\u0438\u0439 AI \u043d\u0435 \u0434\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u0438 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0445\u043e\u0434 \u0441\u0432\u043e\u0438\u0445 \u043c\u044b\u0441\u043b\u0435\u0439. \u041d\u0438\u0436\u0435 \u0431\u0435\u0437 \u043a\u0443\u043f\u044e\u0440 \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0442 \u0421\u0431\u0435\u0440\u0430:<\/p>\n<pre><code class=\"python\">\u0428\u0430\u0433 1: \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b expenses.csv \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438:    \u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438,\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430,\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f,\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435,\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 2023-01-05,2023-01-10,\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b,\u041f\u043e\u043a\u0443\u043f\u043a\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432,5000 2023-02-15,2023-03-20,\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442,\u041f\u0440\u043e\u0435\u0437\u0434\u043d\u043e\u0439 \u0431\u0438\u043b\u0435\u0442,2000 ... \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Pandas:    import pandas as pd  # \u0427\u0442\u0435\u043d\u0438\u0435 CSV \u0444\u0430\u0439\u043b\u0430 df = pd.read_csv('expenses.csv', parse_dates=['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438', '\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430'])  # \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0443\u043c\u043c \u0432 \u0447\u0438\u0441\u043b\u0430 df['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'] = df['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].astype(float) \u0428\u0430\u0433 2: \u0410\u043d\u0430\u043b\u0438\u0437 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0433\u043e\u0434\u0430\u043c, \u043c\u0435\u0441\u044f\u0446\u0430\u043c \u0438 \u0434\u043d\u044f\u043c  def group_by_date_and_category(df): # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0434\u043b\u044f \u0433\u043e\u0434\u0430, \u043c\u0435\u0441\u044f\u0446\u0430 \u0438 \u0434\u043d\u044f df['\u0413\u043e\u0434'] = df['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.year df['\u041c\u0435\u0441\u044f\u0446'] = df['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.month df['\u0414\u0435\u043d\u044c'] = df['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.day  # \u0413\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e \u0433\u043e\u0434\u0443, \u043c\u0435\u0441\u044f\u0446\u0443, \u0434\u043d\u044e \u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 grouped_df = df.groupby(['\u0413\u043e\u0434', '\u041c\u0435\u0441\u044f\u0446', '\u0414\u0435\u043d\u044c', '\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f'])['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum().rese  return grouped_df \u0412\u044b\u0432\u043e\u0434 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432  grouped_expenses = group_by_date_and_category(df) print(grouped_expenses) \u0428\u0430\u0433 3: \u041f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0442\u043e\u0434\u044b  \u041c\u0435\u0442\u043e\u0434 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 N \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0435\u0440\u0438    from statsmodels.tsa.api import SimpleExpSmoothing   def forecast_with_sma(df, periods=3): # \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0443\u043c\u043c\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e \u043c\u0435\u0441\u044f\u0446\u0430\u043c monthly_sums = df.groupby(pd.Grouper(key='\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438', freq='M'))['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum(  # \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043c\u0435\u0442\u043e\u0434 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e model = SimpleExpSmoothing(monthly_sums).fit(smoothing_level=0.6)  # \u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043d\u0430 3 \u043c\u0435\u0441\u044f\u0446\u0430 \u0432\u043f\u0435\u0440\u0435\u0434 forecast = model.forecast(steps=periods)  return forecast \u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u041c\u0435\u0442\u043e\u0434 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u043d\u0434\u0430 \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430    from sklearn.linear_model import LinearRegression from sklearn.preprocessing import PolynomialFeatures  def forecast_with_linear_regression(df, degree=2, periods=3): # \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0443\u043c\u043c\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e \u043c\u0435\u0441\u044f\u0446\u0430\u043c monthly_sums = df.groupby(pd.Grouper(key='\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438', freq='M'))['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum(  # \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u044b X \u0438 y X = np.arange(len(monthly_sums)).reshape(-1, 1) y = monthly_sums.values.reshape(-1, 1)  # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044e poly = PolynomialFeatures(degree=degree) X_poly = poly.fit_transform(X)  # \u041e\u0431\u0443\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c model = LinearRegression().fit(X_poly, y)  # \u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043d\u0430 3 \u043c\u0435\u0441\u044f\u0446\u0430 \u0432\u043f\u0435\u0440\u0435\u0434 future_X = np.arange(len(monthly_sums), len(monthly_sums) + periods).reshape(-1, 1) future_X_poly = poly.transform(future_X) forecast = model.predict(future_X_poly)  return forecast \u0428\u0430\u0433 4: \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Tkinter Tkinter \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Python \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.   import tkinter as tk from tkinter import ttk import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg  class ExpenseAnalyzerApp(tk.Tk): def   init  (self): super().  init  ()  self.title(\"Expense Analyzer\") self.geometry(\"800x600\")  # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u043a\u043b\u0430\u0434\u043a\u0438 tab_control = ttk.Notebook(self) analysis_tab = ttk.Frame(tab_control) forecast_tab = ttk.Frame(tab_control) tab_control.add(analysis_tab, text=\"Analysis\") tab_control.add(forecast_tab, text=\"Forecast\") tab_control.pack(expand=True, fill=\"both\")  # \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 self.create_analysis_table(analysis_tab)  # \u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 self.create_forecast_plots(forecast_tab)  def create_analysis_table(self, parent): treeview = ttk.Treeview(parent, columns=[\"Year\", \"Month\", \"Day\", \"Category\", \"Amount\"]) treeview.heading(\"#0\", text=\"ID\") treeview.column(\"#0\", width=50) for col in [\"Year\", \"Month\", \"Day\", \"Category\", \"Amount\"]: treeview.heading(col, text=col) treeview.column(col, width=100)  for index, row in grouped_expenses.iterrows(): treeview.insert(\"\", \"end\", iid=index, values=(row[\"\u0413\u043e\u0434\"], row[\"\u041c\u0435\u0441\u044f\u0446\"], row[\"\u0414\u0435\u043d\u044c\"] treeview.pack(side=\"left\", fill=\"y\") scrollbar = ttk.Scrollbar(parent, orient=\"vertical\", command=treeview.yview) treeview.configure(yscrollcommand=scrollbar.set)   scrollbar.pack(side=\"right\", fill=\"y\")  def create_forecast_plots(self, parent): figure = plt.Figure(figsize=(5, 4), dpi=100) ax = figure.add_subplot(111) forecast_data = forecast_with_sma(df) ax.plot(forecast_data.index, forecast_data.values) ax.set_title(\"Forecast with SMA\")  canvas = FigureCanvasTkAgg(figure, parent) canvas.get_tk_widget().pack(side=\"top\", fill=\"both\", expand=True)  if   name == \"  main  \": app = ExpenseAnalyzerApp() app.mainloop()<\/code><\/pre>\n<p>DeepSeek \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043a\u0443\u0434\u0430 \u0442\u0430\u043b\u0430\u043d\u0442\u043b\u0438\u0432\u0435\u0435 \u0438 \u043f\u043e\u043c\u0438\u043c\u043e \u043a\u043e\u0434\u0430 \u0442\u0435\u0437\u0438\u0441\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043b \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<p><strong>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445: <\/strong>   <\/p>\n<ul>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b Excel (.xlsx);    <\/p>\n<\/li>\n<li>\n<p>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0430\u0440\u0441\u0438\u0442 \u0434\u0430\u0442\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439.    <\/p>\n<\/li>\n<\/ul>\n<h4>\u0410\u043d\u0430\u043b\u0438\u0437 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432:<\/h4>\n<ul>\n<li>\n<p>\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0433\u043e\u0434\u0430\u043c\/\u043c\u0435\u0441\u044f\u0446\u0430\u043c\/\u0447\u0438\u0441\u043b\u0430\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u043e\u0439.  <\/p>\n<\/li>\n<\/ul>\n<h4>\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435:<\/h4>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 3 \u043c\u0435\u0442\u043e\u0434\u0430;<\/p>\n<\/li>\n<li>\n<p>\u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>\u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f;    <\/p>\n<\/li>\n<li>\n<p>\u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0435;    <\/p>\n<\/li>\n<li>\n<p>\u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430.    <\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f:   <\/strong> <\/p>\n<ul>\n<li>\n<p>\u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u043a\u0440\u0443\u0433\u043e\u0432\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b;     <\/p>\n<\/li>\n<li>\n<p>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432;    <\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432.    <\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0435 \u0447\u0443\u0434\u043e \u0432\u044b\u0434\u0430\u043b\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435-\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044e \u00ab\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438\u00bb:<\/p>\n<pre><code class=\"python\">pip install pandas numpy matplotlib statsmodels scikit-learn openpyxl tk<\/code><\/pre>\n<p>\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u043d\u0430\u0434\u043e \u0432 \u043c\u0435\u043d\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u043a\u0438\u0434\u0430\u0442\u044c, \u043f\u043e\u043a\u0440\u0438\u043a\u0438\u0432\u0430\u044f, \u0447\u0442\u043e &#171;\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c&#187; \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 pip, pandas, numpy, \u043a\u0430\u043a \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0434\u0430, \u0438 \u0447\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u043e\u0439. \u0414\u0430, \u044d\u0442\u043e \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442 \u0447\u0438\u0441\u0442\u043e\u0442\u0443 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430. \u041d\u043e, \u0447\u0435\u0441\u0442\u043d\u043e, \u044f \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0430\u0442\u044c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0431\u044b\u043b\u043e \u0431\u044b \u043a\u0440\u0443\u0442\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b DeepSeek \u0432\u044b\u0434\u0430\u043b \u0435\u0449\u0435 \u0438 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0442\u043e\u0433\u043e, \u043a\u0443\u0434\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043a\u043d\u0443\u0442\u044c, \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438 \u0447\u0442\u043e \u043d\u0430\u0436\u0430\u0442\u044c. \u041d\u043e \u0443\u0432\u044b.<\/p>\n<p>\u041a\u043e\u0440\u043e\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0441\u0434\u0435\u043b\u0430\u0432, \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438, \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u043e\u043a\u043d\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u043c\u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/805\/338\/b7b\/805338b7b9dcf6361f7ccd1e99ba524d.png\" width=\"1142\" height=\"788\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/805\/338\/b7b\/805338b7b9dcf6361f7ccd1e99ba524d.png\"\/><\/figure>\n<p>\u0425\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:<\/p>\n<p><strong>\u0414\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u0430:<\/strong><\/p>\n<ol>\n<li>\n<p>\u0423\u0436\u0435 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043a\u0430 \u043e\u0441\u043e\u0437\u043d\u0430\u043b\u0430, \u0447\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0437 \u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u2014 \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 &#171;\u0410\u043d\u0430\u043b\u0438\u0437&#187; \u0438 &#171;\u041f\u0440\u043e\u0433\u043d\u043e\u0437&#187;.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u0439\u0440\u043e\u043d\u043a\u0430 \u0441\u0430\u043c\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0438 \u0441\u0430\u043c\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0430 \u0444\u0430\u0432\u0438\u043a\u043e\u043d.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u043a\u043d\u043e\u043f\u043e\u0447\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041a\u0440\u0430\u0441\u043e\u0442\u0430.<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/strong><\/p>\n<ol>\n<li>\n<p>\u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e\u043b\u043d\u0430\u044f \u0430\u0445\u0438\u043d\u0435\u044f. \u041d\u043e \u0442\u0443\u0442, \u043d\u0435 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0435\u0442 \u0422-\u0431\u0430\u043d\u043a\u0443 \u0441 \u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043a\u0430\u043a-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0437.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 &#171;\u0410\u043d\u0430\u043b\u0438\u0437&#187; \u0437\u0438\u044f\u044e\u0449\u0430\u044f \u043f\u0443\u0441\u0442\u043e\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0438\u043a\u0430\u043a\u0438\u043c\u0438 \u043a\u0440\u0443\u0433\u043e\u0432\u044b\u043c\u0438 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438 \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u0430\u0445\u043d\u0435\u0442.<\/p>\n<\/li>\n<\/ol>\n<p><strong>\u0412\u044b\u0432\u043e\u0434: <\/strong>\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0438, \u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442. \u041a\u043e\u0434 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043d\u0438\u0436\u0435:<\/p>\n<pre><code class=\"python\">import pandas as pd import numpy as np import tkinter as tk from tkinter import ttk, filedialog from datetime import datetime, timedelta from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib.figure import Figure from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing from sklearn.linear_model import LinearRegression  class FinanceAnalyzerApp: def  init (self, root): self.root = root self.root.title(\"\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432\") self.data = None  # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 self.create_widgets()  def create_widgets(self): # \u041a\u043d\u043e\u043f\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 self.load_btn = ttk.Button(self.root, text=\"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435\", command=self.load_data) self.load_btn.pack(pady=10)  # Notebook \u0434\u043b\u044f \u0432\u043a\u043b\u0430\u0434\u043e\u043a self.notebook = ttk.Notebook(self.root) self.analysis_frame = ttk.Frame(self.notebook) self.forecast_frame = ttk.Frame(self.notebook) self.notebook.add(self.analysis_frame, text=\"\u0410\u043d\u0430\u043b\u0438\u0437\") self.notebook.add(self.forecast_frame, text=\"\u041f\u0440\u043e\u0433\u043d\u043e\u0437\") self.notebook.pack(expand=True, fill=tk.BOTH)  def load_data(self): file_path = filedialog.askopenfilename(filetypes=[(\"Excel files\", \"*.xlsx\")]) if file_path: self.data = pd.read_excel(file_path, parse_dates=['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438']) self.process_data() self.show_analysis() self.generate_forecast()  def process_data(self): # \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 self.data['\u0413\u043e\u0434'] = self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.year self.data['\u041c\u0435\u0441\u044f\u0446'] = self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.month self.data['\u0414\u0435\u043d\u044c'] = self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.day  def show_analysis(self): # \u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c self.category_analysis = pd.pivot_table( self.data, values='\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438', index='\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f', columns=['\u0413\u043e\u0434', '\u041c\u0435\u0441\u044f\u0446'], aggfunc=np.sum )  # \u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c self.description_analysis = pd.pivot_table( self.data, values='\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438', index='\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435', columns=['\u0413\u043e\u0434', '\u041c\u0435\u0441\u044f\u0446'], aggfunc=np.sum )  # \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 self.create_table(self.analysis_frame, self.category_analysis, \"\u041f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c\") self.create_table(self.analysis_frame, self.description_analysis, \"\u041f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\")  def generate_forecast(self): # \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 monthly_data = self.data.resample('M', on='\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438')['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum()  # \u041c\u0435\u0442\u043e\u0434 1: \u042d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435 model_es = ExponentialSmoothing(monthly_data).fit() forecast_es = model_es.forecast(3)  # \u041c\u0435\u0442\u043e\u0434 2: \u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f X = np.arange(len(monthly_data)).reshape(-1, 1) y = monthly_data.values model_lr = LinearRegression().fit(X, y) forecast_lr = model_lr.predict([[len(monthly_data)+i] for i in range(3)])  # \u041c\u0435\u0442\u043e\u0434 3: \u0421\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 window_size = 3 forecast_ma = [monthly_data[-window_size:].mean()] * 3 # \u0423\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 self.final_forecast = (forecast_es + forecast_lr + forecast_ma) \/ 3  # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 self.create_forecast_tables() self.create_pie_charts()  def create_forecast_tables(self): # \u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c category_forecast = self.data.groupby('\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f')['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].mean() * self.fina  # \u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c description_forecast = self.data.groupby('\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435')['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].mean() * self.fi  # \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446 self.create_table(self.forecast_frame, category_forecast, \"\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c\") self.create_table(self.forecast_frame, description_forecast, \"\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\")  def create_table(self, parent, data, title): frame = ttk.Frame(parent) tree = ttk.Treeview(frame)  # \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a tree[\"columns\"] = list(data.columns) tree.column(\"#0\", width=200) for col in data.columns: tree.column(col, width=100)  # \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 tree.heading(\"#0\", text=title) for col in data.columns: tree.heading(col, text=str(col))  # \u0414\u0430\u043d\u043d\u044b\u0435 for index, row in data.iterrows(): tree.insert(\"\", tk.END, text=index, values=list(row))  tree.pack(expand=True, fill=tk.BOTH) frame.pack(side=tk.LEFT, expand=True, fill=tk.BOTH)  def create_pie_charts(self): fig = Figure(figsize=(8, 4)) for i, month in enumerate(self.final_forecast.index): ax = fig.add_subplot(1, 3, i+1) self.data.groupby('\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f')['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum().plot.pie(ax=ax) ax.set_title(f\"\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043d\u0430 {month.strftime('%B %Y')}\")  canvas = FigureCanvasTkAgg(fig, self.forecast_frame) canvas.get_tk_widget().pack()  if  name == \" main \": root = tk.Tk() app = FinanceAnalyzerApp(root) root.geometry(\"1200x800\") root.mainloop()<\/code><\/pre>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 2<\/h3>\n<p>\u042f \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0434\u0435\u043b\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432 \u043a\u0440\u0438\u0432\u0438\u0437\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 xlsx-\u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435. \u041c\u044b\u0441\u043b\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0433\u0435\u043d\u0438\u0430\u043b\u044c\u043d\u043e\u0439, \u0438&#8230; \u044f \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u043a\u0438\u0442\u0430\u0439\u0446\u0430 \u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c:<\/p>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0438\u0437\u043c\u0435\u043d\u0438 \u043a\u043e\u0434 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 csv.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 DeepSeek \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439:<\/p>\n<p>1. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u0430 \u043a\u0430\u043a CSV (.csv), \u0442\u0430\u043a \u0438 Excel (.xlsx) \u0444\u0430\u0439\u043b\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043f\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044e \u0444\u0430\u0439\u043b\u0430;    <\/p>\n<\/li>\n<li>\n<p>\u0447\u0442\u0435\u043d\u0438\u0435 CSV. <\/p>\n<\/li>\n<\/ul>\n<p>2. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 pd.read_csv() \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438: <\/p>\n<ul>\n<li>\n<p>parse_dates\u0434\u043b\u044f\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e\u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f\u0434\u0430\u0442;<\/p>\n<\/li>\n<li>\n<p>dayfirst=True \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u0430\u0442\u044b \u0414\u0414.\u041c\u041c.\u0413\u0413\u0413\u0413;    <\/p>\n<\/li>\n<li>\n<p>delimiter=&#8217;,&#8217; (\u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 &#8216;;&#8217; \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c);<\/p>\n<\/li>\n<li>\n<p>encoding=&#8217;utf-8&#8242; (\u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 &#8216;cp1251&#8217; \u0434\u043b\u044f \u0440\u0443\u0441\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432).<\/p>\n<\/li>\n<\/ul>\n<p>3.\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a:<\/p>\n<ul>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0431\u043b\u043e\u043atry\/except\u0434\u043b\u044f\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0445\u0444\u0430\u0439\u043b\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043a\u0430\u0437 \u043e\u0448\u0438\u0431\u043e\u043a \u0447\u0435\u0440\u0435\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0438\u0430\u043b\u043e\u0433.    <\/p>\n<\/li>\n<\/ul>\n<p>\u0418 \u0441\u043d\u043e\u0432\u0430 \u0432\u044b\u0448\u0435\u043b \u0440\u044f\u0434 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439-\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435, \u0442\u0438\u043f\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e:<\/p>\n<pre><code class=\"python\">1.\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 (\u0435\u0441\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b): pip install pandas numpy matplotlib statsmodels scikit-learn 2.\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 CSV-\u0444\u0430\u0439\u043b \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439: \u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438;\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438;\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f;\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 01.01.2023;1500;\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b;\u041f\u043e\u043a\u0443\u043f\u043a\u0430 \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 05.01.2023;3000;\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442;\u0417\u0430\u043f\u0440\u0430\u0432\u043a\u0430 3.\u041f\u0440\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u043e\u0439\/\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432 pd.read_csv(): delimiter=';', # \u0414\u043b\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \"\u0442\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439\" encoding='cp1251' # \u0414\u043b\u044f \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 Windows<\/code><\/pre>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u043a\u043e\u0434 \u043d\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442. \u041f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b csv \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435: \u043e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430: &#8216;UTF-8&#8217; cjdec can&#8217;t decode byte 0xc4 in position 0^ invalid continuation byte    <\/p>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 3<\/h3>\n<p>\u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0442\u0430\u043a \u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u043c.<\/p>\n<h4>\u041f\u0440\u043e\u043c\u043f\u0442:<\/h4>\n<p>\u041a\u043e\u0434 \u043d\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442. \u041f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b csv \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435: \u043e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430: &#8216;UTF-8&#8217; cjdec can&#8217;t decode byte 0xc4 in position 0^ invalid continuation byte<\/p>\n<p>AI \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439 (\u0434\u0430, \u043a\u0441\u0442\u0430\u0442\u0438, \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0438 \u0447\u0442\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442 DeepSeek \u043e\u0442 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445, \u0432\u0435\u0434\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0445\u043e\u0434\u043e\u043c &#171;\u043c\u044b\u0441\u043b\u0435\u0439&#187; \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0447\u0443\u0434\u0430). \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0441\u0430\u043c\u043e\u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0440\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u0442\u0432\u0435\u0442: \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0432 \u043a\u043e\u0434\u0435 (utf-8 vs cp1251).<\/p>\n<p>\u041d\u0435\u0439\u0440\u043e\u043d\u043a\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430 (\u0437\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u043e\u043d\u0430 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0433\u0434\u0435 \u043a\u043e\u0441\u044f\u043a, \u0438 \u043f\u0440\u0430\u0432\u0438\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e) \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439:<\/p>\n<p>1.\u00a0 \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0431\u043e\u0440 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0431\u0443\u0435\u043c utf-8 \u2192 cp1251 \u2192 iso-8859-1;    <\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, &#8216;windows-1251&#8217;).    <\/p>\n<\/li>\n<\/ul>\n<p>2. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0444\u0430\u0439\u043b\u0430:<\/p>\n<ul>\n<li>\n<p>\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438: \u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f, \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u044b \u0438\u043d\u0430\u0447\u0435, \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>3. \u0413\u0438\u0431\u043a\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c:<\/p>\n<ul>\n<li>\n<p>\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f; (\u0434\u043b\u044f \u0440\u0443\u0441\u0441\u043a\u0438\u0445 CSV \u0438\u0437 Excel);    <\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u0444\u0430\u0439\u043b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, \u043f\u043e\u043c\u0435\u043d\u044f\u0439\u0442\u0435 delimiter=&#8217;,&#8217;.     <\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e:    <\/p>\n<p>1.\u00a0 \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e CSV-\u0444\u0430\u0439\u043b \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442.<\/p>\n<p>2.\u00a0 \u0415\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0432 Excel \u043d\u0430 Windows:<\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0435\u0433\u043e \u043a\u0430\u043a &#171;CSV (\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c &#8212; \u0442\u043e\u0447\u043a\u0430 \u0441 \u0437\u0430\u043f\u044f\u0442\u043e\u0439)&#187;;    <\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443 UTF-8 \u0441 BOM \u0438\u043b\u0438 Windows (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e).    <\/p>\n<\/li>\n<\/ul>\n<p>3. \u0414\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438 \u043a\u0430\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f\u043c\u0438:     <\/p>\n<ul>\n<li>\n<p>\u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0432 \u043a\u043e\u0434\u0435 delimiter=&#8217;,&#8217;;    <\/p>\n<\/li>\n<li>\n<p>\u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u043e\u0447\u043a\u0443 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 100.50).    <\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0430\u0431\u044b \u043d\u0435 \u0440\u0430\u0437\u0434\u0443\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e, \u043a\u043e\u0434 \u043d\u0435 \u043f\u0440\u0438\u0432\u043e\u0436\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u0430 \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0442\u0430\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c, \u0438 \u0432 \u0446\u0438\u0444\u0440\u0430\u0445 \u0442\u0430 \u0436\u0435 \u0430\u0431\u0440\u0430\u043a\u0430\u0434\u0430\u0431\u0440\u0430 (\u0434\u043b\u044f &#171;\u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&#187;).<\/p>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u043f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0443 AI \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c, \u0432 \u0447\u0435\u043c \u0437\u0430\u0433\u0432\u043e\u0437\u0434\u043a\u0430, \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0435\u0435, \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u0432\u044b\u0434\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043d \u0435\u0435 \u043d\u0435 \u0432\u0438\u0434\u0438\u0442.<\/p>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 4<\/h3>\n<p>\u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u044f \u0432\u0434\u0440\u0443\u0433 \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442, \u0438\u0431\u043e \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0440\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e \u0434\u0430\u0442\u0430\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 (\u0432 \u0422-\u0431\u0430\u043d\u043a\u0435 \u044d\u0442\u043e\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &#171;\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435&#187;). \u0422\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u0430 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u043a\u0430, \u0438\u0431\u043e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u0430 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043a\u0440\u0443\u0433\u043e\u0432\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u043f\u0440\u043e\u0441\u0438\u043b \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u043b\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0434\u0430\u0432\u0430\u0439 \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443. \u0415\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f:<\/p>\n<p>1.\u00a0 \u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>2.\u00a0 \u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430.<\/p>\n<p>3.\u00a0 \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f.<\/p>\n<p>4.\u00a0 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435.<\/p>\n<p>5.\u00a0 \u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0417\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e \u043e\u0442 \u0431\u043b\u0438\u0436\u043d\u0435\u0439 \u0434\u0430\u0442\u044b \u043a \u0434\u0430\u043b\u044c\u043d\u0435\u0439.<\/p>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 python desktop-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b:<\/p>\n<p>1.\u00a0 \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u0445, \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e \u0433\u043e\u0434\u0430\u043c, \u043c\u0435\u0441\u044f\u0446\u0430\u043c \u0438 \u0447\u0438\u0441\u043b\u0430\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c.<\/p>\n<p>2.\u00a0 \u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u043c \u043d\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0442\u0440\u0438 \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u044e\u0431\u044b\u0445 \u0442\u0440\u0435\u0445- \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043c\u0435\u0442\u043e\u0434\u0438\u043a \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0442\u043e\u0434 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u043a\u043d\u0430, \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u0438 \u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435.<\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0433\u0434\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0432 \u044d\u0442\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438. \u0414\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u043c. \u0414\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0438 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c. \u041f\u043e\u0434 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u0435\u0440\u0438\u043e\u0434\u0443 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c.<\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u0438\u0434\u0435:<\/p>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430, \u0433\u0434\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0438 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c. \u041f\u043e\u0434 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u043c\u0443 \u043c\u0435\u0441\u044f\u0446\u0443. <\/p>\n<p>\u0418\u0442\u0430\u043a, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0430\u0432, \u043a\u0438\u0442\u0430\u0435\u0446 \u043f\u0440\u0438\u0432\u0435\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c86\/313\/7be\/c863137be4be108e2f8bb0d33fbab6f6.png\" width=\"1142\" height=\"729\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c86\/313\/7be\/c863137be4be108e2f8bb0d33fbab6f6.png\"\/><\/figure>\n<p><strong>\u0418\u0442\u043e\u0433: \u0437<\/strong>\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 \u043f\u043e\u043b\u043d\u043e\u0439 \u043c\u0435\u0440\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442, \u0438\u0431\u043e \u043a\u0443\u0434\u0430-\u0442\u043e \u0434\u0435\u043b\u0430\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 xls. \u0422\u043e\u043b\u044c\u043a\u043e xlsx \u0438 csv. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u044f \u043f\u043e\u043f\u0440\u043e\u0448\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 xls.<\/p>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 5<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0434\u043e\u0431\u0430\u0432\u044c \u0432 \u043a\u043e\u0434 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 xls. \u041f\u0440\u0438\u0432\u0435\u0434\u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u0434\u0430.<\/p>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u043a\u043e\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f, \u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430: Missing optional dependency &#8216;xlrd&#8217;. Install xlrd&gt;= for xls Excel<\/p>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 6<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435: \u043e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430: Missing optional dependency &#8216;xlrd&#8217;. Install xlrd&gt;= for xls Excel.<\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442<\/strong>: \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 xlrd, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0440\u044b\u0445 Excel-\u0444\u0430\u0439\u043b\u043e\u0432 (.xls). \u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0448\u0430\u0433\u0438 \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438:<\/p>\n<p>1.\u00a0 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"python\">pip install pandas numpy matplotlib statsmodels scikit-learn tk xlrd openpyxl<\/code><\/pre>\n<p>2.\u00a0 \u0415\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430 \u0441 xlrd: \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 .xls \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u043a\u043e\u0434 \u044f\u0432\u043d\u043e\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0434\u0432\u0438\u0436\u043a\u0430 (\u0434\u0430\u043b\u0435\u0435 \u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0434\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c).<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 DeepSeek \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e \u0440\u0443\u0447\u043d\u043e\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 xls \u0432 xlsx \u0447\u0435\u0440\u0435\u0437 Excel.<\/p>\n<p>\u0415\u0449\u0435 \u043e\u043d \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431: <\/p>\n<pre><code class=\"python\">self.data = pd.read_excel(file_path, engine='calamine')<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c calamine:     <\/p>\n<pre><code class=\"python\">pip install python-calamine<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044f \u0431\u0435\u0437 \u043e\u0441\u043e\u0431\u044b\u0445 \u0440\u0430\u0437\u0434\u0443\u043c\u0438\u0439 \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u0441\u0435, \u043e \u0447\u0435\u043c \u043c\u0435\u043d\u044f \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b DeepSeek , \u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u043a\u043e\u0434. GUI \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0438\u0439, \u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430: too many values to unpack (expected 2)<\/p>\n<p>\u0422\u0430\u043a \u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u043c.<\/p>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 7<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0430: too many values to unpack (expected 2)<\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442: <\/strong>\u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u043e\u0434.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u0437\u0443\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b update_analysis \u0438 generate_forecast<\/p>\n<p>\u043d\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 multiIndex \u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a\u0443\u0441\u043a\u0438 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u043d\u044b. \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0441\u0430\u043c\u043e\u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u0440\u0442\u044f\u043d\u043a\u0435 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439, \u043e\u0442\u043a\u0443\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0432 \u0447\u0435\u043c DeepSeek \u0432\u0438\u0434\u0438\u0442 \u0441\u0432\u043e\u0438 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:<\/p>\n<p>1.\u00a0 \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\n<p>\u0432 \u0446\u0438\u043a\u043b\u0435 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c \u0443\u0431\u0440\u0430\u043d\u0430 \u043b\u0438\u0448\u043d\u044f\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f cat;<\/p>\n<\/li>\n<li>\n<p>\u0432 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 MultiIndex.    <\/p>\n<\/li>\n<\/ul>\n<p>2.\u00a0 \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0430\u0442:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f pd.DateOffset \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0434\u0430\u0442 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430.    <\/p>\n<\/li>\n<\/ul>\n<p>3.\u00a0 \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 reshape() \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>4.\u00a0 \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 MultiIndex \u0432 \u043c\u0435\u0442\u043e\u0434\u0430\u0445 update_analysis \u0438 generate_forecast.<\/p>\n<p>5.\u00a0 \u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0445 \u0434\u0430\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c pd.DateOffset.<\/p>\n<p>6.\u00a0 \u041c\u0430\u0442\u0440\u0438\u0447\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>7.\u00a0 \u0418\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430\u043c\u0438.<\/p>\n<p>8. \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0441\u0435\u0439. <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:    <\/p>\n<pre><code class=\"python\">pip install pandas numpy matplotlib statsmodels scikit-learn tk xlrd openpyxl python-calamine<\/code><\/pre>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c. \u041e\u0448\u0438\u0431\u043a\u0430 \u043d\u0435 \u0443\u0448\u043b\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441.<\/p>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 8<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0441\u043d\u043e\u0432\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0430: too many values to unpack (expected 2). \u0418\u0441\u043f\u0440\u0430\u0432\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u0434\u0430.<\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442: <\/strong>\u0432\u043e\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 MultiIndex. \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0430 \u0438\u0437-\u0437\u0430 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430\u043c\u0438.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:<\/p>\n<p>1.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 observed=True \u0432 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.<\/p>\n<p>2.\u00a0 \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e MultiIndex \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c. xs() \u0438 .items().<\/p>\n<p>3.\u00a0 \u041f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439.<\/p>\n<p>4.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0435 \u043f\u0435\u0440\u0435\u0434 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0435\u0439.<\/p>\n<p>5.\u00a0 \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0430\u0442 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c pd.DateOffset.<\/p>\n<p>\u0418, \u0445\u043e\u0442\u044f \u043c\u044b \u044d\u0442\u043e \u0443\u0436\u0435 \u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0435\u043e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e, \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 (\u0432\u0438\u0434\u0438\u043c\u043e, AI \u0442\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u0430\u0445\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f):<\/p>\n<pre><code class=\"python\">pip install pandas numpy matplotlib statsmodels scikit-learn xlrd openpyxl<\/code><\/pre>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442:<\/p>\n<p>1.\u00a0 \u0414\u0430\u043d\u043d\u044b\u0435 \u043b\u043e\u0436\u0430\u0442\u0441\u044f, \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442;<\/p>\n<p>2.\u00a0 \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0439;<\/p>\n<p>3.\u00a0 \u0413\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442;<\/p>\n<p>4.\u00a0 \u041d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0444\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0434\u0430\u0442\u0430\u043c.<\/p>\n<p>\u041d\u043e! \u0412\u0441\u0435-\u0442\u0430\u043a\u0438 \u043e\u043f\u0443\u0441 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0438\u0432\u043e\u0432\u0430\u0442: \u0446\u0438\u0444\u0440\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u043a\u0440\u0438\u0432\u044b\u0435 (\u0442\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0441\u043a\u043e\u0440\u0435\u0435, \u043a \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u0430\u043c \u0438 \u043a \u0433\u0435\u043d\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438), \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0436\u0430\u0441. \u0424\u0438\u043b\u044c\u0442\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u0430\u0442. \u0412 \u043e\u043a\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0441\u044f\u0446\u044b \u043d\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d70\/31a\/ded\/d7031aded76e539acd1b33ffe09e8c30.png\" width=\"1136\" height=\"673\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d70\/31a\/ded\/d7031aded76e539acd1b33ffe09e8c30.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f44\/22c\/ccd\/f4422cccdebac7c780c3ec252026c540.png\" width=\"1136\" height=\"723\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f44\/22c\/ccd\/f4422cccdebac7c780c3ec252026c540.png\"\/><\/figure>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 9<\/h3>\n<p>\u0417\u0434\u0435\u0441\u044c \u044f \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0443 \u0441\u0433\u043b\u0430\u0434\u0438\u0442\u044c \u0448\u0435\u0440\u043e\u0445\u043e\u0432\u0430\u0442\u043e\u0441\u0442\u0438.<\/p>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e. \u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b: <\/p>\n<p>1. \u041d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u00ab\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b\u00bb \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437. \u041d\u0430\u0434 \u043a\u0430\u0436\u0434\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430. <\/p>\n<p>2.\u0414\u0430\u0432\u0430\u0439 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0431\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0442\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0441\u0443\u043c\u043c\u0430 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u0435\u043d\u0435\u0435 500. <\/p>\n<p>3. \u0414\u0430\u0432\u0430\u0439 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u043d\u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0441\u0443\u043c\u043c\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u0435\u043d\u044c\u0448\u0435 1000. <\/p>\n<p>4. \u041d\u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0434\u0430\u0432\u0430\u0439 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430. <\/p>\n<p>5. \u0414\u0430\u0432\u0430\u0439 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0434\u0430\u0442\u0430\u043c \u0432 \u0432\u0438\u0434\u0435 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044f.<\/p>\n<h4>\u041e\u0442\u0432\u0435\u0442 (\u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e):<\/h4>\n<p>\u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"python\">pip install pandas numpy matplotlib statsmodels scikit-learn xlrd openpyxl tkcalendar<\/code><\/pre>\n<p>1.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e tkcalendar.<\/p>\n<p>2.\u00a0 \u0413\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e.<\/p>\n<p>3.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430\u0434 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445.<\/p>\n<p>4.\u00a0 \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0441\u0443\u043c\u043c\u043e\u0439&lt;500\u043f\u0440\u0438\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435\u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u043c &lt; 1000.    <\/p>\n<\/li>\n<\/ul>\n<p>5.\u00a0 \u041d\u0430\u0434 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0441 \u043c\u0435\u0441\u044f\u0446\u0435\u043c.<\/p>\n<p>6.\u00a0 \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c. \u0414\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0434\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0435 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0438, \u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c.<\/p>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u00ab\u0411\u043e\u043d\u0443\u0441\u044b\u00bb.<\/p>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 10<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0432\u044b\u0434\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443: \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0411\u043e\u043d\u0443\u0441\u044b. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u0431\u044b\u043b\u043e.<\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442: <\/strong>\u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u043e\u0434, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438. \u0414\u0430\u043b\u0435\u0435 \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0443\u0441\u043e\u043a \u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u043d\u044b.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<p>1.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c.<\/p>\n<p>2.\u00a0 \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 (\u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e 500, \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e 1000).<\/p>\n<p>3.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432 \u0434\u043b\u044f ExponentialSmoothing.<\/p>\n<p>4.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>5.\u00a0 \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 &#171;\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445&#187; \u0434\u043b\u044f \u043f\u0443\u0441\u0442\u044b\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432.<\/p>\n<p>6. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:   <\/p>\n<pre><code class=\"python\">pip install statsmodels --upgrade<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cda\/e21\/cc3\/cdae21cc374224e7d78662173392acb6.png\" width=\"1139\" height=\"674\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cda\/e21\/cc3\/cdae21cc374224e7d78662173392acb6.png\"\/><\/figure>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u043f\u0440\u043e\u043c\u043f\u0442, \u0432 \u043e\u0431\u0449\u0435\u043c, \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043d, \u043e\u0434\u043d\u0430\u043a\u043e \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e, \u0430 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u044d\u043a\u0440\u0430\u043d\u0430, \u0438 \u0438\u043c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0411\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 11<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u043e\u0442\u043b\u0438\u0447\u043d\u043e. \u0412\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0414\u0430\u0432\u0430\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: <\/p>\n<p>1. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u043b\u043d\u043e\u0440\u0430\u0437\u043c\u0435\u0440\u043d\u044b\u043c\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438 \u0432 \u043e\u043a\u043d\u0435 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0445 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430. <\/p>\n<p>2. \u0423\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0448\u0440\u0438\u0444\u0442\u044b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u044b\u043b\u0438 \u0447\u0438\u0442\u0430\u0435\u043c\u044b.<\/p>\n<p>3. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u043c \u043d\u0430\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e. \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0435\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0431\u044b\u043b\u0438 \u0447\u0438\u0442\u0430\u0435\u043c\u044b \u0438 \u0432\u0445\u043e\u0434\u0438\u043b\u0438 \u043d\u0430 \u043d\u0435\u0435. <\/p>\n<p>4. \u0412 \u043a\u043e\u043d\u0446\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043e\u0431\u0449\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043d\u0430 \u043c\u0435\u0441\u044f\u0446 \u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u043c \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443. \u0420\u044f\u0434\u043e\u043c \u0441 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438 \u0441\u043f\u0440\u0430\u0432\u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430.<\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442: <\/strong>\u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0432\u044b\u0434\u0430\u0435\u0442 \u043a\u043e\u0434 \u0438 \u0443\u0442\u043e\u0447\u043d\u044f\u0435\u0442 \u0447\u0442\u043e \u043e\u043d &#171;\u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0432\u0430\u0448\u0438\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439&#187;. <\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:    <\/p>\n<p>1.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 ScrollableFrame \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432.<\/p>\n<p>2.\u00a0 \u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0448\u0440\u0438\u0444\u0442\u043e\u0432 (\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a: 8pt, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438: 10pt).<\/p>\n<p>3.\u00a0 \u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043d\u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432.<\/p>\n<p>4.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 &#171;\u0418\u0442\u043e\u0433\u043e&#187; \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0441 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>5.\u00a0 \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0449\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0441\u043f\u0440\u0430\u0432\u0430 \u043e\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0430.<\/p>\n<p>6.\u00a0 \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.<\/p>\n<p>7. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043e\u0442\u0441\u0442\u0443\u043f\u044b \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435. <\/p>\n<p>\u0421\u043d\u043e\u0432\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:    <\/p>\n<pre><code class=\"python\">pip install pandas numpy matplotlib statsmodels scikit-learn xlrd openpyxl tkcalendar<\/code><\/pre>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 &#171;\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u044b&#187; \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u043b\u0430\u0441\u044c: <\/p>\n<p>1. \u0418\u0441\u0447\u0435\u0437\u043b\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u0446\u0438\u0444\u0440\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c. <\/p>\n<p>2. \u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u043b\u0438\u0441\u044c \u0432 \u043f\u0440\u0430\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u044d\u043a\u0440\u0430\u043d\u0430. <\/p>\n<p>3. \u041f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043d\u0430 \u043f\u043e\u043b\u043e\u0441\u0443 \u0441\u043a\u0440\u043e\u043b\u043b\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/45f\/d67\/999\/45fd679997e6d4c17bc74ff5aa52efc2.png\" width=\"1142\" height=\"788\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/45f\/d67\/999\/45fd679997e6d4c17bc74ff5aa52efc2.png\"\/><\/figure>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 12<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 &#171;\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u044b&#187; \u0432\u0441\u0435 \u0441\u0442\u0430\u043b\u043e \u043f\u043b\u043e\u0445\u043e: <\/p>\n<p>1. \u0418\u0441\u0447\u0435\u0437\u043b\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u0446\u0438\u0444\u0440\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c. <\/p>\n<p>2. \u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u043b\u0438\u0441\u044c \u0432 \u043f\u0440\u0430\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u044d\u043a\u0440\u0430\u043d\u0430. <\/p>\n<p>\u0414\u0430\u0432\u0430\u0439 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: <\/p>\n<p>1. \u0412\u0435\u0440\u043d\u0435\u043c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u0446\u0438\u0444\u0440\u044b \u043f\u043e \u0432\u0441\u0435\u043c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u0432 \u043d\u0438\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0438 \u0432\u0438\u0434\u0435\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f. <\/p>\n<p>2. \u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u043c \u043e\u043a\u043d\u043e \u0441 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438 \u0432\u043d\u0438\u0437 \u043f\u043e\u0434 \u0442\u0430\u0431\u043b\u0438\u0446\u0443. <\/p>\n<p>3. \u041d\u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438\u0441\u044c, \u0430 \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u043b \u043f\u043e\u043f-\u0430\u043f \u0441 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430. <\/p>\n<p>4. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 &#171;\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b&#187; \u0438 &#171;\u041f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f&#187;.<\/p>\n<p>5. \u041d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438 \u0440\u044f\u0434\u043e\u043c \u0441 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0432\u0441\u0435\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0437\u0430 \u043f\u0435\u0440\u0438\u043e\u0434.<\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442: <\/strong>\u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u0432\u044b\u0434\u0430\u0435\u0442 \u043a\u043e\u0434 &#171;\u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439&#187;. <\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<p>1.\u00a0 \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439.<\/p>\n<p>2.\u00a0 \u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0434 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439.<\/p>\n<p>3.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445.<\/p>\n<p>4.\u00a0 \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 &#171;\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b&#187; \u0438 &#171;\u041f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f&#187;.<\/p>\n<p>5.\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430.<\/p>\n<p>6.\u00a0 \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u0439 (\u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u044d\u043a\u0440\u0430\u043d\u0430).<\/p>\n<p>7.\u00a0 \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446.<\/p>\n<p>8. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0445 \u0441\u0443\u043c\u043c \u0440\u044f\u0434\u043e\u043c \u0441 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0418 \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438<\/p>\n<pre><code class=\"python\">pip install pandas numpy matplotlib statsmodels scikit-learn xlrd openpyxl tkcalendar<\/code><\/pre>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u0432\u0441\u0435 \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0435\u0435, \u043d\u043e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043d\u0435 \u0430\u0439\u0441, \u0438\u0431\u043e \u043f\u0440\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438:<\/p>\n<p>1.\u00a0 \u0412 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0438 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u043d\u043e\u0432\u0430 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b\u0438, \u043d\u043e \u043f\u0440\u043e\u043f\u0430\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0440\u043e\u043b\u043b\u0430, \u0438 \u0438\u0445 \u0432\u0441\u0435 \u043d\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c.<\/p>\n<p>2.\u00a0 \u0412 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u0436\u0430\u043b\u0430\u0441\u044c \u0438 \u0443\u0435\u0445\u0430\u043b\u0430 \u0432\u043f\u0440\u0430\u0432\u043e, \u0430 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0443\u0441\u0442\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e, \u0433\u0434\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0444\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0434\u0430\u0442\u0435 \u0441 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u043c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u0435\u043c.<\/p>\n<p>3.\u00a0 \u041d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043f\u043e\u043f-\u0430\u043f\u0430 \u043f\u0440\u0438 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043d\u0430 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u044f \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0443\u0431\u0440\u0430\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0448\u0435\u0440\u043e\u0445\u043e\u0432\u0430\u0442\u043e\u0441\u0442\u0438. \u0418 \u0432\u0441\u0435 \u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e, \u043d\u043e \u043d\u0430 15 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043b\u0435\u0437\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430: \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u044b\u0448\u0435\u043d\u043d\u044b\u043c\u0438. \u0421\u0443\u043c\u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438 \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u043b\u043e\u0436\u043d\u044b\u0435.<\/p>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 16<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0432 \u043e\u0431\u0449\u0435\u043c, \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. \u041d\u043e \u043d\u0430\u0434\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043d\u0435\u0434\u043e\u0447\u0435\u0442: \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043f\u0440\u0438 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 (\u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u044b\u0448\u0435\u043d\u043d\u044b\u0435) \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c. \u0418\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0448\u0435 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d\u0438 \u0432\u0445\u043e\u0434\u044f\u0442. \u041d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u043b\u0438\u0441\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e.<\/p>\n<p><strong>\u041e\u0442\u0432\u0435\u0442: <\/strong>\u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439. \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0438\u0437-\u0437\u0430 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043d\u0430 \u0434\u043e\u043b\u044e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0432 \u043e\u0431\u0449\u0435\u0439 \u0441\u0443\u043c\u043c\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u044f\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0439. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u0434\u043e\u043b\u044f \u043e\u0442 \u043e\u0431\u0449\u0435\u0439 \u0441\u0443\u043c\u043c\u044b \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 (desc_ratios).<\/p>\n<p><strong>\u0418\u0442\u043e\u0433: <\/strong>\u043d\u0430 \u044d\u0442\u043e\u043c \u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u0434 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043d\u0430\u0447\u0430\u043b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0437\u0430\u043c\u044b\u0441\u043b\u0443, \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0445\u043e\u0442\u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u043d\u043e \u0434\u0430\u043b\u0435\u043a\u043e \u043e\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0430 (\u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043f\u0440\u043e\u0444\u0438 \u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043b\u044e\u043d\u0443\u0442 \u0432 \u043d\u0430\u0448\u0443 \u0441 DeepSeek-\u043e\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u0443). \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0445\u0443\u0434\u043e-\u0431\u0435\u0434\u043d\u043e, \u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u043c\u0435\u044e\u0442\u0441\u044f, \u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4b0\/029\/d49\/4b0029d498df6da8cdf4aaf513076a2c.png\" width=\"1110\" height=\"678\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4b0\/029\/d49\/4b0029d498df6da8cdf4aaf513076a2c.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4a0\/21b\/e9d\/4a021be9de6fdf6de7de761f4264f84e.png\" width=\"1110\" height=\"660\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4a0\/21b\/e9d\/4a021be9de6fdf6de7de761f4264f84e.png\"\/><\/figure>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<p>1.\u00a0 \u0414\u0430, \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u043f\u043b\u043e\u0445\u043e (\u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0433\u0443 \u043e\u0431 \u044d\u0442\u043e\u043c \u0441\u0443\u0434\u0438\u0442\u044c) \u043f\u0438\u0448\u0435\u0442 \u043a\u043e\u0434, \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043a \u0441\u0430\u043c\u043e\u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0435 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0441\u0432\u043e\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a. \u041d\u043e!.. \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u0434\u0430\u0447\u0438 &#171;\u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430&#187;, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c:<\/p>\n<ul>\n<li>\n<p>\u0443\u043c\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043c\u044b\u0441\u043b\u0438\u0442\u044c \u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u043f\u0443\u0441\u0442\u044c \u0434\u0430\u0436\u0435 \u0438 \u043d\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u0435\u0445\u043f\u0440\u043e\u0444\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u044b\u043c \u0437\u043d\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 (\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f), \u0447\u0442\u043e\u0431\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u044f\u0437\u044b\u043a;    <\/p>\n<\/li>\n<li>\n<p>\u0437\u043d\u0430\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u044f\u0437\u044b\u043a, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0438 \u043a\u0430\u043a \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b;    <\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 \u2014 \u0443\u043c\u0435\u043d\u0438\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u043c\/\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439;    <\/p>\n<\/li>\n<li>\n<p>\u0443\u043c\u0435\u043d\u0438\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 IDE (notepad++ \u0437\u0434\u0435\u0441\u044c \u0432\u0440\u044f\u0434 \u043b\u0438 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442) \u0445\u043e\u0442\u044f \u0431\u044b \u0432 \u0447\u0430\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u0434\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e \u0445\u043e\u0442\u044f \u0431\u044b \u043a \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u043e\u043c\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0430;    <\/p>\n<\/li>\n<li>\n<p>\u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 (\u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438) \u043d\u0430\u0432\u044b\u043a\u0430\u043c\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 &#171;\u043d\u0430\u0443\u0447\u043d\u043e\u0433\u043e \u0442\u044b\u043a\u0430&#187;.    <\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043c\u044b\u0441\u043b\u0430, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438, \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 &#171;\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c&#187; \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0439 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0435\u0442\u0441\u044f (\u043f\u0443\u0441\u0442\u044c \u0438 \u043d\u0435 \u0432\u043f\u043b\u043e\u0442\u043d\u0443\u044e) \u043a junior-\u043f\u0438\u0442\u043e\u043d\u0438\u0441\u0442\u0443.<\/p>\n<p>2.\u00a0 \u0421\u0442\u043e\u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043c\u044b\u0441\u043b\u0430 \u0432\u0438\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c (\u0445\u043e\u0442\u044f, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u0430\u043a). \u0422\u0430\u043a\u043e\u0435 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c, \u043f\u043e\u0434\u043e\u0431\u043d\u043e \u0433\u0438\u043f\u0435\u0440\u0431\u043e\u043b\u0435, \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043a \u043d\u0435\u043c\u0443 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u0442\u0430\u043a \u0438 \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u043c.<\/p>\n<p>3.\u00a0 \u0412\u043d\u0435 \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430 1-2 \u043f\u0440\u043e\u043c\u043f\u0442\u0430, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043d\u043e \u043e\u043d, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043b\u0435\u043a \u043e\u0442 \u0438\u0441\u0442\u0438\u043d\u044b. \u041c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c 16 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0447\u0442\u043e\u0431\u044b \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c\u0441\u044f \u043a \u0438\u0441\u0442\u0438\u043d\u0435.<\/p>\n<p>4.\u00a0 \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u0440\u0435\u0434\u043d\u0435\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0440\u044f\u0434 \u043b\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u0449\u0430\u044f\u0441\u044c \u0441 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c\u044e \u043d\u0430 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435.<\/p>\n<p>5.\u00a0 \u0414\u0430, \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u0433\u0440\u0443\u0437\u0438\u0442\u044c\/\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c IT-\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0432 \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u0434\u0438\u043d\u0433\u0430, \u0434\u0435\u0431\u0430\u0433\u0430 \u0438 \u0442.\u043f., \u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430 \u0431\u0435\u0437 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u043e\u043d\u0438 \u043d\u0435\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b. \u0422\u0430\u043a \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438!<\/p>\n<p>P.S. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u043e\u0434, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044f \u0440\u0435\u0448\u0438\u043b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f. \u0412 \u044d\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0438 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0432\u043d\u044f\u0442\u043d\u043e (\u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044e, \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u043b\u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e) \u0441\u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0445\u043e\u0434\u044b. \u0414\u0443\u043c\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u0437\u0430\u043b\u043e\u0436\u0438\u0432 \u0442\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0441\u0442\u043e\u0439\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<pre><code class=\"python\">import pandas as pd import numpy as np import tkinter as tk from tkinter import ttk, filedialog, messagebox from tkcalendar import DateEntry from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib.figure import Figure from statsmodels.tsa.api import ExponentialSmoothing from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt from matplotlib.backend_bases import PickEvent  class Tooltip: def  init (self, ax, patches): self.ax = ax self.patches = patches self.annot = ax.annotate(\"\", xy=(0,0), xytext=(20,20), textcoords=\"offset points\", bbox=dict(boxstyle=\"round\", fc=\"w\"), arrowprops=dict(arrowstyle=\"-&gt;\")) self.annot.set_visible(False)  def hover(self, event): vis = self.annot.get_visible() if event.inaxes == self.ax: for patch in self.patches: cont, ind = patch.contains(event) if cont: self.annot.xy = (patch.get_x() + patch.get_width()\/2, patch.get_height()) self.annot.set_text(f\"{patch.get_height():.2f}\") self.annot.get_bbox_patch().set_alpha(0.8) self.annot.set_visible(True) self.ax.figure.canvas.draw_idle() return if vis: self.annot.set_visible(False) self.ax.figure.canvas.draw_idle()  class FinanceAnalyzerApp: def  init (self, root): self.root = root self.root.title(\"\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 v3.2\") self.data = None self.forecast_data = None  self.create_widgets() self.create_date_filters()  def create_widgets(self): self.file_frame = ttk.Frame(self.root) self.load_btn = ttk.Button(self.file_frame, text=\"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435\", command=self.load_ self.load_btn.pack(side=tk.LEFT, padx=5) self.file_frame.pack(fill=tk.X, pady=5) self.notebook = ttk.Notebook(self.root) self.analysis_tab = ttk.Frame(self.notebook) self.create_analysis_widgets()  self.forecast_tab = ttk.Frame(self.notebook) self.create_forecast_widgets()  self.notebook.add(self.analysis_tab, text=\"\u0410\u043d\u0430\u043b\u0438\u0437\") self.notebook.add(self.forecast_tab, text=\"\u041f\u0440\u043e\u0433\u043d\u043e\u0437\") self.notebook.pack(expand=True, fill=tk.BOTH)  def create_date_filters(self): self.date_filter_frame = ttk.Frame(self.analysis_tab)  self.start_date_label = ttk.Label(self.date_filter_frame, text=\"\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0430\u0442\u0430:\") self.start_date_label.pack(side=tk.LEFT, padx=5)  self.start_date_entry = DateEntry( self.date_filter_frame, date_pattern='yyyy-mm-dd', locale='ru_RU', firstweekday='sunday', mindate=pd.Timestamp('2000-01-01'), maxdate=pd.Timestamp('2100-01-01') ) self.start_date_entry.pack(side=tk.LEFT, padx=5)  self.end_date_label = ttk.Label(self.date_filter_frame, text=\"\u041a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0434\u0430\u0442\u0430:\") self.end_date_label.pack(side=tk.LEFT, padx=5)  self.end_date_entry = DateEntry(   self.date_filter_frame, date_pattern='yyyy-mm-dd', locale='ru_RU', firstweekday='sunday', mindate=pd.Timestamp('2000-01-01'), maxdate=pd.Timestamp('2100-01-01') ) self.end_date_entry.pack(side=tk.LEFT, padx=5)  self.apply_filter_btn = ttk.Button( self.date_filter_frame, text=\"\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440\", command=self.update_analysis ) self.apply_filter_btn.pack(side=tk.LEFT, padx=5) self.date_filter_frame.pack(fill=tk.X, pady=5) def create_analysis_widgets(self): self.analysis_tree = ttk.Treeview(self.analysis_tab, columns=(\"\u0421\u0443\u043c\u043c\u0430\"), show=\"tree head self.analysis_tree.heading(\"#0\", text=\"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\/\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\") self.analysis_tree.heading(\"\u0421\u0443\u043c\u043c\u0430\", text=\"\u0421\u0443\u043c\u043c\u0430\") self.analysis_tree.pack(side=tk.LEFT, fill=tk.BOTH, expand=True, padx=5, pady=5)  self.analysis_fig = Figure(figsize=(6, 4), dpi=100) self.analysis_ax = self.analysis_fig.add_subplot(111) self.analysis_canvas = FigureCanvasTkAgg(self.analysis_fig, self.analysis_tab) self.analysis_canvas.get_tk_widget().pack(side=tk.RIGHT, fill=tk.BOTH, expand=True)  self.total_label = ttk.Label(self.analysis_tab, text=\"\u0418\u0442\u043e\u0433\u043e: 0.00\", font=('TkDefaultFon self.total_label.pack(side=tk.BOTTOM, fill=tk.X)  def create_forecast_widgets(self): self.forecast_paned = ttk.PanedWindow(self.forecast_tab, orient=tk.HORIZONTAL)  self.forecast_tree_frame = ttk.Frame(self.forecast_paned, width=400) self.forecast_tree = ttk.Treeview( self.forecast_tree_frame, columns=(\"\u041c\u0435\u0441\u044f\u0446 1\", \"\u041c\u0435\u0441\u044f\u0446 2\", \"\u041c\u0435\u0441\u044f\u0446 3\"), show=\"tree headings\" ) self.forecast_tree.heading(\"#0\", text=\"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\/\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\") self.forecast_tree.column(\"#0\", width=200)   self.forecast_tree.heading(\"\u041c\u0435\u0441\u044f\u0446 1\", text=\"\u041c\u0435\u0441\u044f\u0446 1\") self.forecast_tree.heading(\"\u041c\u0435\u0441\u044f\u0446 2\", text=\"\u041c\u0435\u0441\u044f\u0446 2\") self.forecast_tree.heading(\"\u041c\u0435\u0441\u044f\u0446 3\", text=\"\u041c\u0435\u0441\u044f\u0446 3\") self.forecast_tree.tag_configure('total', background='#e0e0e0', font=('TkDefaultFont',  tree_scroll = ttk.Scrollbar(self.forecast_tree_frame, orient=\"vertical\", command=self.f self.forecast_tree.configure(yscrollcommand=tree_scroll.set) self.forecast_tree.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) tree_scroll.pack(side=tk.RIGHT, fill=\"y\")  self.forecast_graph_frame = ttk.Frame(self.forecast_paned) self.forecast_canvas = tk.Canvas(self.forecast_graph_frame) self.scrollbar = ttk.Scrollbar(self.forecast_graph_frame, orient=\"vertical\", command=se self.scrollable_frame = ttk.Frame(self.forecast_canvas)  self.scrollable_frame.bind( \"&lt;Configure&gt;\", lambda e: self.forecast_canvas.configure( scrollregion=self.forecast_canvas.bbox(\"all\") ) )  self.forecast_canvas.create_window((0, 0), window=self.scrollable_frame, anchor=\"nw\") self.forecast_canvas.configure(yscrollcommand=self.scrollbar.set)  self.forecast_canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) self.scrollbar.pack(side=tk.RIGHT, fill=\"y\")  self.forecast_paned.add(self.forecast_tree_frame, weight=1) self.forecast_paned.add(self.forecast_graph_frame, weight=3) self.forecast_paned.pack(fill=tk.BOTH, expand=True)  def load_data(self): file_path = filedialog.askopenfilename( filetypes=[ (\"CSV files\", \"*.csv\"), (\"Excel files\", \"*.xls\"), (\"Excel files\", \"*.xlsx\") ] )  if file_path: try:   if file_path.endswith('.csv'): self.data = pd.read_csv( file_path, parse_dates=['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'], dayfirst=True, delimiter=';', encoding='cp1251' ) elif file_path.endswith('.xls'): self.data = pd.read_excel( file_path, parse_dates=['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'], engine='xlrd' ) elif file_path.endswith('.xlsx'): self.data = pd.read_excel( file_path, parse_dates=['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'], engine='openpyxl' )  if not self.data.empty: self.data = self.data[ (self.data['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'] &gt;= 500) &amp; (~self.data['\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f'].isin(['\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u044b', '\u041f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f'])) ]  self.prepare_data() self.update_analysis() self.generate_forecast()  except Exception as e: messagebox.showerror(\"\u041e\u0448\u0438\u0431\u043a\u0430\", f\"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430: {str(e)}\")  def prepare_data(self): if self.data.empty: return  self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'] = pd.to_datetime(self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438']) self.data['\u0413\u043e\u0434'] = self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.year self.data['\u041c\u0435\u0441\u044f\u0446'] = self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.month self.data['\u0414\u0435\u043d\u044c'] = self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.day   self.start_date_entry.set_date(self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].min()) self.end_date_entry.set_date(self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].max())  def update_analysis(self): self.clear_tree(self.analysis_tree) self.analysis_ax.clear()  try: if self.data.empty: raise ValueError(\"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430\")  start_date = pd.to_datetime(self.start_date_entry.get_date()) end_date = pd.to_datetime(self.end_date_entry.get_date()) filtered_data = self.data[ (self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'] &gt;= start_date) &amp; (self.data['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'] &lt;= end_date) ]  if filtered_data.empty: raise ValueError(\"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0434\u0430\u0442\")  total = filtered_data['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum() self.total_label.config(text=f\"\u0418\u0442\u043e\u0433\u043e: {total:.2f}\")  categories = filtered_data.groupby('\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f', observed=True)['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].su details = filtered_data.groupby(['\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f', '\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435'], observed=True)['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f  for category in categories.index: parent = self.analysis_tree.insert(\"\", \"end\", text=category, values=(f\"{categor if (category,) in details.index: for desc, amount in details.xs(category).items(): self.analysis_tree.insert(parent, \"end\", text=desc, values=(f\"{amount:.  if not categories.empty: categories.plot(kind='barh', ax=self.analysis_ax) self.analysis_ax.set_title('\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c', fontsize=10) self.analysis_ax.tick_params(axis='both', which='major', labelsize=8) self.analysis_ax.set_xlabel('\u0421\u0443\u043c\u043c\u0430', fontsize=8) self.analysis_ax.text(0.95, 1.02, f\"\u0418\u0442\u043e\u0433\u043e: {total:.2f}\", transform=self.analysis_ax.transAxes, ha='right', fontsize=9) self.analysis_fig.tight_layout() else:   self.analysis_ax.text(0.5, 0.5, \"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445\", ha='center', va='center') self.analysis_canvas.draw() except Exception as e: messagebox.showerror(\"\u041e\u0448\u0438\u0431\u043a\u0430\", f\"\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430: {str(e)}\")  def generate_forecast(self): self.clear_tree(self.forecast_tree) for widget in self.scrollable_frame.winfo_children(): widget.destroy()  try: if self.data.empty: raise ValueError(\"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\")  monthly_data = self.data.resample('M', on='\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438')['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum()  if len(monthly_data) &lt; 3: raise ValueError(\"\u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0443\u043c 3  models = { '\u042d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435': ExponentialSmoothing( monthly_data, seasonal='add', seasonal_periods=min(12, len(monthly_data)) ).fit().forecast(3), '\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f': LinearRegression().fit( np.arange(len(monthly_data)).reshape(-1, 1), monthly_data.values ).predict(np.arange(len(monthly_data), len(monthly_data)+3).reshape(-1, 1)), '\u0421\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0435': [monthly_data.rolling(3).mean().iloc[-1]] * 3 }  self.forecast_data = pd.DataFrame(models).mean(axis=1)  category_ratios = self.data.groupby('\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f', observed=True)['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].s total = category_ratios.sum() if total == 0: raise ValueError(\"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\") category_ratios = category_ratios \/ total  forecast_categories = pd.DataFrame(   np.outer(self.forecast_data, category_ratios), columns=category_ratios.index )  forecast_dates = pd.date_range( start=monthly_data.index[-1] + pd.DateOffset(months=1), periods=3, freq='M' )  self.forecast_tree.heading(\"\u041c\u0435\u0441\u044f\u0446 1\", text=forecast_dates[0].strftime(\"%b %Y\")) self.forecast_tree.heading(\"\u041c\u0435\u0441\u044f\u0446 2\", text=forecast_dates[1].strftime(\"%b %Y\")) self.forecast_tree.heading(\"\u041c\u0435\u0441\u044f\u0446 3\", text=forecast_dates[2].strftime(\"%b %Y\"))  total_values = [] for i in range(3): total_values.append(forecast_categories.iloc[i].sum())  category_details = self.data.groupby(['\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f', '\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435'], observed=True)['\u0421\u0443\u043c  for category in forecast_categories.columns: parent = self.forecast_tree.insert(\"\", \"end\", text=category, values=tuple(f\"{x:.2f}\" for x in forecast_categories[catego  if (category,) in category_details.index: desc_ratios = category_details.xs(category) \/ category_details.xs(category) for desc, ratio in desc_ratios.items(): desc_values = [ f\"{forecast_categories[category][i] * ratio:.2f}\" for i in range(3) ] self.forecast_tree.insert(parent, \"end\", text=desc, values=desc_values)  self.forecast_tree.insert(\"\", \"end\", text=\"\u0418\u0442\u043e\u0433\u043e\", values=tuple(f\"{v:.2f}\" for v in total_values), tags=('total',))  for i, date in enumerate(forecast_dates): fig = Figure(figsize=(10, 5), dpi=80) ax = fig.add_subplot(111)  data_to_plot = forecast_categories.iloc[i] if not data_to_plot.empty:   patches = ax.bar(data_to_plot.index, data_to_plot.values) ax.set_title(date.strftime(\"%B %Y\"), fontsize=10) ax.tick_params(axis='x', rotation=90, labelsize=8) ax.tick_params(axis='y', labelsize=8)  tooltip = Tooltip(ax, patches) fig.canvas.mpl_connect(\"motion_notify_event\", tooltip.hover)  fig.tight_layout() canvas = FigureCanvasTkAgg(fig, self.scrollable_frame) canvas.get_tk_widget().pack(fill=tk.BOTH, expand=True, pady=5)  except Exception as e: messagebox.showerror(\"\u041e\u0448\u0438\u0431\u043a\u0430\", f\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: {str(e)}\")  def clear_tree(self, tree): for item in tree.get_children(): tree.delete(item)  if  name == \" main \": root = tk.Tk() app = FinanceAnalyzerApp(root) root.geometry(\"1400x900\") root.mainloop()<\/code><\/pre>\n<\/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\/893824\/\"> https:\/\/habr.com\/ru\/articles\/893824\/<\/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<h4>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440:<\/h4>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u0430 \u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 DeepSeek \u0438 GigaChat \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 &lt;\u0440\u044f\u0434\u043e\u0432\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u2013 \u043c\u0430\u0448\u0438\u043d\u0430&gt;. \u0410\u0432\u0442\u043e\u0440 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c \u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u043c\u043f\u0442-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0437\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 \u0438 \u043e\u0431\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0433\u043e \u0438\u043b\u0438 \u0438\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0433\u043e \u0418\u0418. \u0410\u0432\u0442\u043e\u0440 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0447\u0435\u043c \u0432\u044b\u0431\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u0430\u043c\u043e \u0432\u0438\u0434\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043c\u044b\u0441\u043b\u0430 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u0432. \u0410\u0432\u0442\u043e\u0440 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b, \u0442\u0430\u043a \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438, \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u043c\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<h4>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u041d\u0430\u0447\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438 \u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a \u0441 \u043f\u0440\u0438\u043c\u0435\u0441\u044c\u044e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044f. \u0415\u0441\u043b\u0438 \u0442\u043e\u0447\u043d\u0435\u0435, \u0442\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u043d\u043e \u043d\u0430\u0447\u0430\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0438\u043c \u0441\u0442\u0430\u043b. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u0438\u0437 \u043e\u043f\u044b\u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438 \u0432 \u043c\u0430\u043b\u043e\u043c \u0431\u0438\u0437\u043d\u0435\u0441\u0435 \u044f \u0432\u044b\u043d\u0435\u0441 \u043b\u044e\u0431\u043e\u0432\u044c \u043a \u0446\u0438\u0444\u0440\u0430\u043c, \u0438\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432 excel. \u00a0<\/p>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043b\u0435\u0436\u0430\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438:<\/p>\n<ul>\n<li>\n<p>\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0448\u0443\u043c \u0432\u043e\u043a\u0440\u0443\u0433 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 \u0438 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0432 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u0432\u0441\u0435 \u0441\u043a\u043e\u0440\u043e \u043b\u0438\u0448\u0438\u043c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u044b;    <\/p>\n<\/li>\n<li>\n<p>\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0431\u044b\u043b\u044b\u0445 \u0436\u0435\u043b\u0430\u043d\u0438\u0439 \u043e\u0431 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443;    <\/p>\n<\/li>\n<li>\n<p>\u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 \u0432 \u043f\u043b\u0430\u043d\u0435 \u043a\u043e\u0434\u0438\u043d\u0433\u0430 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0443\u0441\u0442\u044c \u0438 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u0445, \u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445; \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.    <\/p>\n<\/li>\n<\/ul>\n<h4>\u0424\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/h4>\n<p>\u0418\u0442\u0430\u043a, \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0441\u043c\u043e\u0440\u0435\u0442\u044c, \u0441\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0443\u043c\u0435\u044e\u0449\u0438\u0439 \u0445\u0443\u0434\u043e-\u0431\u0435\u0434\u043d\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e \u043c\u044b\u0441\u043b\u0438\u0442\u044c \u0438 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0438\u0437\u043b\u0430\u0433\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0433\u043e 1-2 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0435 (\u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435) \u0437\u0430\u0434\u0430\u0447\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0434\u043e\u043b\u0436\u043d\u043e \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 (\u0432\u043e\u0442 \u0441\u043e\u0432\u0441\u0435\u043c) \u0432\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u0434, \u0430 \u0431\u0443\u0434\u0443 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c \u0441 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c. \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 <strong>\u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u21161<\/strong>.<\/p>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u21162 <\/strong>\u2013 \u0432\u044b\u0431\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e, \u043d\u0435 \u0430\u0440\u0445\u0438\u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430, \u0438\u043c\u0435\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u044b\u0439 \u0431\u044d\u043a\u0433\u0440\u0430\u0443\u043d\u0434 \u0432 \u0432\u0438\u0434\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432 \u0438 \u0442.\u043f. \u0417\u0434\u0435\u0441\u044c \u044f \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u041f\u0438\u0442\u043e\u043d. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044f \u043c\u043e\u0433\u0443 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u0435\u0445\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 \u044d\u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435.<\/p>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u21163 <\/strong>\u2013 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0430\u0447 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0430 \u0434\u043e\u043b\u0436\u043d\u043e (\u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e):<\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e (\u0434\u0430, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043a\u0430 \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c).<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u044b \u043f\u043e \u0434\u0432\u0443\u043c-\u0442\u0440\u0435\u043c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430\u043c, \u0438 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 (\u043f\u0440\u0438\u0447\u0435\u043c, \u0432\u044b\u0431\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u0438\u043a \u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044e AI).<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0438\u043d\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u043a.    <\/p>\n<\/li>\n<li>\n<p>\u0418\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0434\u0430\u0442\u0435.    <\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u043b\u043e \u043d\u0430\u0439\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u043e\u0432. \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f, \u0447\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0441\u0435\u043c\u0435\u0439\u043d\u044b\u0439 \u0431\u044e\u0434\u0436\u0435\u0442, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0437 \u0431\u0430\u043d\u043a\u0430 xls-\u0444\u0430\u0439\u043b\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0438 \u0434\u0435\u043d\u0435\u0436\u043d\u044b\u0439 \u0441\u0440\u0435\u0434\u0441\u0442\u0432. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044f \u0440\u0435\u0448\u0438\u043b \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0442\u044b \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u0442\u0440\u0430\u0442\u0430\u043c \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0432\u043f\u0435\u0440\u0435\u0434.<\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0438\u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u0440\u043e\u043c\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 (\u0438 \u0442\u043e \u043d\u0435 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438), \u043d\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0438 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c. \u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432 \u043e\u043d\u043b\u0430\u0439\u043d-\u0431\u0430\u043d\u043a\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0438\u0441\u044c. \u0422\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u044b\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430<\/strong>    <\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f<\/strong>    <\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/strong>    <\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/strong>    <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">27.01.2025    <\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0441\u0442\u043e\u0440\u0430\u043d\u044b    <\/p>\n<\/td>\n<td>\n<p align=\"left\">GrillZon    <\/p>\n<\/td>\n<td>\n<p align=\"left\">2000,00    <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0431\u043e\u0440\u0430 AI, \u0442\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u0438\u0445 VPN \u043d\u0435\u0439\u0440\u043e\u043d\u043a\u0430\u0445 GigaChat \u043e\u0442 \u0421\u0431\u0435\u0440\u0430 (\u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u043a \u0441\u043b\u043e\u0432\u0443, \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c) \u0438 \u043d\u0430\u0448\u0443\u043c\u0435\u0432\u0448\u0435\u0439 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0439 DeepSeek.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u0441\u043b\u043e\u0432 \u043e \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0438. \u0422\u0443\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e: \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432 \u0440\u043e\u043b\u0438 &#171;\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u041f\u041a \u0441\u043e \u0437\u043d\u0430\u043d\u0438\u0435\u043c \u0412\u043e\u0440\u0434&#187;, \u0442\u043e \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0443\u043c\u0435\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e, \u043a\u0440\u043e\u043c\u0435 \u043a\u0430\u043a \u0441\u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u0438\u0437 \u0447\u0430\u0442\u0430 \u0441 AI \u0432 VSCode \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043e\u0447\u043a\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. \u041e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e, \u0445\u043e\u0442\u044c \u044d\u0442\u043e \u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043c\u043e\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u043e\u0441\u0438\u043b\u0430 \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u043c\u043f\u0442\u0430.<\/p>\n<h2>\u041f\u0438\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h2>\n<h3>\u0418\u0442\u0435\u0440\u0430\u0446\u0438\u044f 1<\/h3>\n<p><strong>\u041f\u0440\u043e\u043c\u043f\u0442: <\/strong>\u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f:<\/p>\n<ol>\n<li>\n<p>\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041d\u043e\u043c\u0435\u0440 \u043a\u0430\u0440\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u0442\u0443\u0441.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u043b\u044e\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u043b\u044e\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e \u043e\u0442 \u0431\u043b\u0438\u0436\u043d\u0435\u0439 \u0434\u0430\u0442\u044b \u043a \u0434\u0430\u043b\u044c\u043d\u0435\u0439.<\/p>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 python desktop-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b:<\/p>\n<ol>\n<li>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u0445, \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e \u0433\u043e\u0434\u0430\u043c, \u043c\u0435\u0441\u044f\u0446\u0430\u043c \u0438 \u0447\u0438\u0441\u043b\u0430\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u043c \u043d\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u0442\u0440\u0438 \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u044e\u0431\u044b\u0445 \u0442\u0440\u0435\u0445- \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043c\u0435\u0442\u043e\u0434\u0438\u043a \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0442\u043e\u0434 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u043e\u043a\u043d\u0430, \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u0438 \u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435.<\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u0438\u0434\u0435:<\/p>\n<ol>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u044d\u0442\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0430 \u043f\u043e\u043b\u044f \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u044d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0430 \u043f\u043e\u043b\u044f \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0443\u0433\u043e\u0432\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043c\u0435\u0441\u044f\u0446\u0443. <\/p>\n<\/li>\n<\/ol>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u0438\u0434\u0435:<\/p>\n<ol>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u044d\u0442\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438, \u0430 \u043f\u043e\u043b\u044f \\ \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u044d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0430 \u043f\u043e\u043b\u044f \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0443\u0433\u043e\u0432\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043c\u0435\u0441\u044f\u0446\u0443.<\/p>\n<\/li>\n<\/ol>\n<p>\u0418 \u0432\u043e\u0442 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0430\u043c\u043e\u043c \u043c\u0435\u0441\u0442\u0435 GigaChat \u0438 \u043e\u0442\u0432\u0430\u043b\u0438\u043b\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0438\u043c \u043a\u043e\u0434&#8230; \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0430 prettier \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u043a\u0440\u0430\u0441\u043d\u044b\u043c n-\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a. \u0418 \u043d\u0435\u0442, \u0434\u0435\u043b\u043e \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b, \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b. \u041e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043d\u0435\u043c\u0443 \u043f\u0438\u0441\u0430\u043b\u0441\u044f \u0432\u0442\u043e\u0440\u044b\u043c (\u043d\u0430\u0447\u0430\u043b \u044f \u0441 \u043a\u0438\u0442\u0430\u0439\u0446\u0430), \u0438 \u0432 \u043d\u0435\u043c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442, \u0438\u0431\u043e \u043f\u043e \u043d\u0430\u0432\u043e\u0434\u043a\u0435 DeepSeek \u044f \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b.<\/p>\n<p>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f &#171;\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&#187;, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u043b, \u044d\u0442\u043e \u0443\u0436\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430, \u0438\u0431\u043e, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043b\u0438\u0448\u044c \u0431\u0435\u0433\u043b\u043e\u0433\u043e \u0432\u0437\u0433\u043b\u044f\u0434\u0430 \u0438 \u043c\u0435\u043b\u043a\u043e\u0439 \u043f\u0440\u0430\u0432\u043a\u0438, \u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0443\u043c\u0435\u044e (\u0438 \u043d\u0435 \u0445\u043e\u0447\u0443). \u0421\u043d\u043e\u0432\u0430 \u0447\u0443\u0442\u044c \u0437\u0430\u0431\u0435\u0433\u0443 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043b\u043b\u0435\u0433\u0438 \u0441\u0431\u0435\u0440\u043e\u0432\u0441\u043a\u0438\u0439 AI \u043d\u0435 \u0434\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u0438 \u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0445\u043e\u0434 \u0441\u0432\u043e\u0438\u0445 \u043c\u044b\u0441\u043b\u0435\u0439. \u041d\u0438\u0436\u0435 \u0431\u0435\u0437 \u043a\u0443\u043f\u044e\u0440 \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0442 \u0421\u0431\u0435\u0440\u0430:<\/p>\n<pre><code class=\"python\">\u0428\u0430\u0433 1: \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b expenses.csv \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438:    \u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438,\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430,\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f,\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435,\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 2023-01-05,2023-01-10,\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b,\u041f\u043e\u043a\u0443\u043f\u043a\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432,5000 2023-02-15,2023-03-20,\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442,\u041f\u0440\u043e\u0435\u0437\u0434\u043d\u043e\u0439 \u0431\u0438\u043b\u0435\u0442,2000 ... \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Pandas:    import pandas as pd  # \u0427\u0442\u0435\u043d\u0438\u0435 CSV \u0444\u0430\u0439\u043b\u0430 df = pd.read_csv('expenses.csv', parse_dates=['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438', '\u0414\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430'])  # \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0443\u043c\u043c \u0432 \u0447\u0438\u0441\u043b\u0430 df['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'] = df['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].astype(float) \u0428\u0430\u0433 2: \u0410\u043d\u0430\u043b\u0438\u0437 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0433\u043e\u0434\u0430\u043c, \u043c\u0435\u0441\u044f\u0446\u0430\u043c \u0438 \u0434\u043d\u044f\u043c  def group_by_date_and_category(df): # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0434\u043b\u044f \u0433\u043e\u0434\u0430, \u043c\u0435\u0441\u044f\u0446\u0430 \u0438 \u0434\u043d\u044f df['\u0413\u043e\u0434'] = df['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.year df['\u041c\u0435\u0441\u044f\u0446'] = df['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.month df['\u0414\u0435\u043d\u044c'] = df['\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].dt.day  # \u0413\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e \u0433\u043e\u0434\u0443, \u043c\u0435\u0441\u044f\u0446\u0443, \u0434\u043d\u044e \u0438 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 grouped_df = df.groupby(['\u0413\u043e\u0434', '\u041c\u0435\u0441\u044f\u0446', '\u0414\u0435\u043d\u044c', '\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f'])['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum().rese  return grouped_df \u0412\u044b\u0432\u043e\u0434 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432  grouped_expenses = group_by_date_and_category(df) print(grouped_expenses) \u0428\u0430\u0433 3: \u041f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0435\u0442\u043e\u0434\u044b  \u041c\u0435\u0442\u043e\u0434 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 N \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0435\u0440\u0438    from statsmodels.tsa.api import SimpleExpSmoothing   def forecast_with_sma(df, periods=3): # \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0443\u043c\u043c\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e \u043c\u0435\u0441\u044f\u0446\u0430\u043c monthly_sums = df.groupby(pd.Grouper(key='\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438', freq='M'))['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum(  # \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043c\u0435\u0442\u043e\u0434 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e model = SimpleExpSmoothing(monthly_sums).fit(smoothing_level=0.6)  # \u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043d\u0430 3 \u043c\u0435\u0441\u044f\u0446\u0430 \u0432\u043f\u0435\u0440\u0435\u0434 forecast = model.forecast(steps=periods)  return forecast \u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u041c\u0435\u0442\u043e\u0434 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u043d\u0434\u0430 \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430    from sklearn.linear_model import LinearRegression from sklearn.preprocessing import PolynomialFeatures  def forecast_with_linear_regression(df, degree=2, periods=3): # \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0443\u043c\u043c\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\u043e \u043c\u0435\u0441\u044f\u0446\u0430\u043c monthly_sums = df.groupby(pd.Grouper(key='\u0414\u0430\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438', freq='M'))['\u0421\u0443\u043c\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438'].sum(  # \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u044b X \u0438 y X = np.arange(len(monthly_sums)).reshape(-1, 1) y = monthly_sums.values.reshape(-1, 1)  # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044e poly = PolynomialFeatures(degree=degree) X_poly = poly.fit_transform(X)  #<\/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-454175","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/454175","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=454175"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/454175\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=454175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=454175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=454175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}