{"id":369803,"date":"2024-05-21T04:11:30","date_gmt":"2024-05-21T04:11:30","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=369803"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T04:11:30","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=369803","title":{"rendered":"<span>SQL \u0438 python \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0446\u0435\u043d \u043d\u0430 \u043d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u0421\u041f\u0431 \u0438\u043b\u0438 \u0446\u0435\u043d\u043d\u0435\u0439\u0448\u0438\u0439 \u043d\u0430\u0432\u044b\u043a \u0434\u043b\u044f \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0430 \u0432 2024<\/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<blockquote>\n<p>\u00ab\u0417\u0430\u0447\u0435\u043c \u043c\u043d\u0435 SQL \u0438 python?\u00bb\u00a0\u2014 \u0437\u0430\u0434\u0430\u044e\u0442 \u0440\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0438 \u0438\u043b\u0438\u00a0\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u043f\u043e\u00a0\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0443, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u00a0\u0441\u0444\u0435\u0440\u0435 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438, \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438, \u0443\u0441\u043b\u0443\u0433 \u0434\u043b\u044f\u00a0\u0431\u0438\u0437\u043d\u0435\u0441\u0430: \u00ab\u0423 \u043d\u0430\u0441 \u043d\u0435\u0442 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u0442 \u043b\u043e\u0433\u043e\u0432, \u043c\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0432\u00a0excel\u00bb.<\/p>\n<\/blockquote>\n<p>\u0414\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0438 \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f Power query (\u0447\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u0420\u0424 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u0440\u0443\u0434\u043d\u0435\u0435 \u0438 \u0442\u0440\u0443\u0434\u043d\u0435\u0435). \u041d\u043e \u0443 \u0432\u0430\u0441 \u0442\u043e\u0447\u043d\u043e \u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u043e\u0442 \u0441\u043c\u0435\u0436\u043d\u044b\u0445 \u043e\u0442\u0434\u0435\u043b\u043e\u0432, \u0438\u0437 CRM\/CDP, MES, \u0410\u0421\u0423 \u0422\u041f. \u042d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u0432 \u0432\u0438\u0434\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u0432\u044b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0412\u041f\u0420, \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442\u0435 \u0432\u043e\u0440\u043e\u043d\u043a\u043e\u0439, \u0447\u0438\u0441\u0442\u0438\u0442\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e &#171;\u041d\u0430\u0439\u0442\u0438 \u0438\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c&#187;, \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u0434\u043d\u0438\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Pivot table.<\/p>\n<p>\u041a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 Excel \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u043a\u0440\u043e\u043c\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432.<\/p>\n<ul>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 VBA, \u0447\u0442\u043e\u0431\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u0443: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0447\u0438\u0449\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0438\u043b\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0432\u0438\u0434\u0443. \u0418\u043b\u0438 \u0432\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 it \u043e\u0442\u0434\u0435\u043b\u0435, \u0430 \u043e\u043d\u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u043e \u043d\u0435 \u0441\u043f\u0435\u0448\u0430\u0442 \u0432\u0430\u043c \u043f\u043e\u043c\u043e\u0447\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0443\u0434\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438, \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b. \u041a\u043e\u0434 \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0430 \u043d\u0430 \u043d\u0430\u043b\u0430\u0434\u043a\u0443 \u043c\u043e\u0436\u0435\u0442 \u0443\u0439\u0442\u0438 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u0430\u00a0\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0430\u00a0\u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a\u00a0Windows, \u0447\u0442\u043e\u00a0\u0441\u0435\u0439\u0447\u0430\u0441 \u043a\u0440\u0430\u0439\u043d\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f\u00a0\u043c\u043d\u043e\u0433\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0432\u00a0\u0420\u0424 \u0441\u00a0\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c \u043d\u0430\u00a0Linux. \u0410\u00a0python \u0438 \u0421\u0423\u0411\u0414 (\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 SQLite \u0438\u043b\u0438\u00a0PostgreSQL) \u0438\u043c\u0435\u044e\u0442\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0434 \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f Excel. <\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 excel \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0432 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0441\u0442\u0440\u043e\u043a, \u0438 \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u0445 (\u0431\u043e\u043b\u0435\u0435 200 000 \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u043e\u0444\u0438\u0441\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445)<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0441\u0435 \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0421\u0423\u0411\u0414. \u0412\u0430\u043c \u0434\u0430\u0436\u0435 \u043d\u0435\u00a0\u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440. \u0410 \u0432\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a\u00a0\u044d\u0442\u043e\u0439 \u0421\u0423\u0411\u0414\u00a0\u2014 SQL, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0432\u043b\u0430\u0434\u0435\u0442\u044c \u043d\u0430 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0437\u0430 2-3 \u043c\u0435\u0441\u044f\u0446\u0430 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u043a. Python \u0434\u043b\u044f \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0412\u00a0\u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435, \u044f\u00a0\u0431\u0443\u0434\u0443 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043f\u0440\u044f\u043c\u044b\u0445 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 SQL vs Excel \u0438\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a\u00a0\u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041a \u0434\u0435\u043b\u0443!<\/p>\n<h2>\u0417\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p>\u0418\u043c\u0435\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430, \u043e \u043f\u0440\u043e\u0434\u0430\u0436\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u043d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 csv, \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0443 \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435, \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043e \u0442\u043e\u043c, \u0432 \u043a\u0430\u043a\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435 \u0421\u041f\u0431 \u043b\u0443\u0447\u0448\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0416\u041a, \u0433\u0434\u0435 \u0431\u044b\u043b \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0440\u043e\u0441\u0442 \u0446\u0435\u043d \u0438 \u0447\u0442\u043e \u043d\u0430 \u043d\u0435\u0433\u043e \u0432\u043b\u0438\u044f\u0435\u0442? \u041a\u0430\u043a \u0440\u043e\u0441\u043b\u0430 \u0438\u043b\u0438 \u043f\u0430\u0434\u0430\u043b\u0430 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432? <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bac\/6b6\/70a\/bac6b670ae4beb59d5d8e0a84d3e29e7.png\" alt=\"\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0438\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 csv\" title=\"\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0438\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 csv\" width=\"2006\" height=\"1238\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bac\/6b6\/70a\/bac6b670ae4beb59d5d8e0a84d3e29e7.png\"\/><\/p>\n<div><figcaption>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0438\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 csv<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0435\u0441\u044f\u0446 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0441\u0434\u0435\u043b\u043a\u0430\u0445, \u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0448 \u043e\u0442\u0447\u0435\u0442. \u0427\u0442\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0435\u0439\u0447\u0430\u0441, \u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0444\u0430\u0439\u043b\u044b \u0432 Python, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0443\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0447\u0438\u0441\u0442\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u043c\u0443\u0441\u043e\u0440\u0430 (\u0437\u0430\u043f\u044f\u0442\u044b\u0435, \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0434\u0430\u0442\u044b)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u041f\u0438\u0442\u0435\u0440\u0430 \u0434\u043e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u0437\u0430 30 \u0441\u0435\u043a\u0443\u043d\u0434<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430 1 \u043c\u0438\u043d\u0443\u0442\u0443 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0421\u0423\u0411\u0414 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c\u0441\u044f \u043a \u043d\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0432 SQL<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0435\u0434\u0438\u043d\u0438\u043c 5 \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u043e\u0434\u043d\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0438 \u0441\u0432\u043e\u0434\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443<\/p>\n<\/li>\n<\/ul>\n<p>\u0413\u0434\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c? \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2013 \u044d\u0442\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/code.visualstudio.com\/\" rel=\"noopener noreferrer nofollow\">VSCode<\/a>, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 <a href=\"https:\/\/anaconda.org\/\" rel=\"noopener noreferrer nofollow\">anaconda<\/a>. \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 VS\u0421ode \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 &#171;New file&#187;, \u0430 \u0437\u0430\u0442\u0435\u043c &#171;Jupiter Notebook&#187;.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/981\/086\/b1c\/981086b1cffbda6c5ebe445ac1ef8b2c.png\" alt=\"\u0412\u044b\u0431\u043e\u0440 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f anaconda3 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b, \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 ipynb \u0432 VSCode\" title=\"\u0412\u044b\u0431\u043e\u0440 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f anaconda3 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b, \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 ipynb \u0432 VSCode\" width=\"1248\" height=\"414\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/981\/086\/b1c\/981086b1cffbda6c5ebe445ac1ef8b2c.png\"\/><\/p>\n<div><figcaption>\u0412\u044b\u0431\u043e\u0440 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f anaconda3 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b, \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 ipynb \u0432 VSCode<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0438, \u0442\u0430\u043a\u0436\u0435 \u0438\u0445 \u0435\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u042d\u0442\u043e \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c\u0438 &#171;\u043a\u0443\u0441\u043a\u0438&#187; \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041c\u043e\u0434\u0443\u043b\u044c <code>Geopy<\/code> \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 <code>pip install geopy<\/code>\u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c conda\/anaconda \u0435\u0433\u043e \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0447\u0435\u0440\u0435\u0437 <code>pip<\/code>.<\/p>\n<pre><code class=\"python\">import pandas as pd   #\u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 import sqlite3    #\u0421\u0423\u0411\u0414 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0411\u0414. \u0421\u043a\u043e\u0440\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 duckBD:) from geopy.distance import geodesic   #\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c import matplotlib as plt    #\u0433\u0440\u0430\u0444\u0438\u043a\u0438 import seaborn as sns    #\u0433\u0440\u0430\u0444\u0438\u043a\u0438<\/code><\/pre>\n<h2>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b<\/h2>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0432 Jupyter Notebook \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0432\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0435 \u0438\u043b\u0438 \u0432 <code>output<\/code><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/236\/833\/1bf\/2368331bfa3ba8c6f50e3ab2e02f8526.png\" alt=\"\u0418\u043c\u043f\u043e\u0440\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Pandas \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\" title=\"\u0418\u043c\u043f\u043e\u0440\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Pandas \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\" width=\"1776\" height=\"962\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/236\/833\/1bf\/2368331bfa3ba8c6f50e3ab2e02f8526.png\"\/><\/p>\n<div><figcaption>\u0418\u043c\u043f\u043e\u0440\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Pandas \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>read_csv<\/code>, \u0443\u043a\u0430\u0437\u0430\u0432 \u0430\u0434\u0440\u0435\u0441, \u0433\u0434\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438 \u0441\u0441\u044b\u043b\u043a\u0443 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0438\u043b\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435. Pandas \u043c\u043e\u0436\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043f\u044b \u0444\u0430\u0439\u043b\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u043c\u043f sql, json, spss, sas.<\/p>\n<pre><code class=\"python\">df = pd.read_csv(\"\/Users\/andrew\/Documents\/DataSets\/Dataflat_Oct_2023_LO\/realty_sold_07112023_LO.csv\", sep = ';') df   #\u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f05\/cc8\/ba4\/f05cc8ba49ca9b635d196f83b3a241cb.png\" alt=\"\u0411\u043e\u043b\u0435\u0435 60 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 DataFrame\" title=\"\u0411\u043e\u043b\u0435\u0435 60 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 DataFrame\" width=\"2742\" height=\"1234\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f05\/cc8\/ba4\/f05cc8ba49ca9b635d196f83b3a241cb.png\"\/><\/p>\n<div><figcaption>\u0411\u043e\u043b\u0435\u0435 60 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 DataFrame<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f\u00a0\u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u00a0\u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u0443\u043f\u043d\u0435\u0435, \u0438 \u043c\u044b \u043d\u0435\u00a0\u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438. \u041f\u043e\u043a\u0430 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 <code>DataFrame<\/code> \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <a href=\"https:\/\/pandas.pydata.org\/pandas-docs\/stable\/getting_started\/index.html\" rel=\"noopener noreferrer nofollow\">Pandas<\/a>. \u042d\u0442\u043e \u043c\u043d\u043e\u0433\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u0438\u043b\u0438\u00a0\u043f\u0440\u043e\u0449\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0430\u044f \u043d\u0430\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0438\u043b\u0438\u00a0\u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a0a\/e0a\/f4b\/a0ae0af4b580f15b998bd5a00ad9d4b7.png\" alt=\"10 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043c sample\" title=\"10 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043c sample\" width=\"1534\" height=\"1332\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a0a\/e0a\/f4b\/a0ae0af4b580f15b998bd5a00ad9d4b7.png\"\/><\/p>\n<div><figcaption>10 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043c sample<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0432\u0435\u0434\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043e\u043a \u0432 <code>DataFrame<\/code> <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e9d\/4bd\/6e7\/e9d4bd6e710ef9a240440b095e05a0c8.png\" alt=\"231 008 \u0441\u0442\u0440\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0434\u0435\u043b\u043e\u043a \u043f\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430\u043c\" title=\"231 008 \u0441\u0442\u0440\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0434\u0435\u043b\u043e\u043a \u043f\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430\u043c\" width=\"792\" height=\"202\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e9d\/4bd\/6e7\/e9d4bd6e710ef9a240440b095e05a0c8.png\"\/><\/p>\n<div><figcaption>231 008 \u0441\u0442\u0440\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0434\u0435\u043b\u043e\u043a \u043f\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430\u043c<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e, \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e 20 \u043a\u043e\u043b\u043e\u043d\u043e\u043a. \u0412 \u043e\u043f\u0446\u0438\u044f\u0445 Pandas \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0441\u043a\u0440\u043e\u043b\u043b \u0432\u043b\u0435\u0432\u043e, \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0438\u0441\u044c \u0432\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b. <\/p>\n<pre><code class=\"python\">pd.options.display.float_format = '{:.2f}'.format  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a. pd.set_option('display.max_columns', 500)   # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a. pd.set_option('display.max_rows', 500)   <\/code><\/pre>\n<h2>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>\u041c\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 csv \u0444\u0430\u0439\u043b\u0430, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u043e\u0433\u043e<strong> <\/strong>\u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435, \u0438 \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0430\u0441 \u043d\u0435 \u043e\u0431\u0440\u0430\u0434\u0443\u0435\u0442, \u0447\u0442\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 excel, Pandas \u043d\u0435 \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u0443\u0433\u0430\u0434\u0430\u0442\u044c \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0444\u0430\u0439\u043b\u0430 (\u0441\u0442\u0440\u043e\u043a\u0430, \u0447\u0438\u0441\u043b\u043e, \u0434\u0430\u0442\u0430). \u0422\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044f\u0432\u043d\u043e, \u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u0433\u043e \u0441\u0442\u043e\u0438\u0442, \u0442\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043c\u044b \u044d\u0442\u043e \u043e\u0434\u043d\u0430\u0436\u0434\u044b, \u0438 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e, \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u043b\u0438\u0441\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4e1\/33f\/62a\/4e133f62a166a222d1948b49b589f666.png\" alt=\"\u0418\u0437-\u0437\u0430 \u0448\u0438\u0440\u043e\u0442\u044b Dataframe \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438\" title=\"\u0418\u0437-\u0437\u0430 \u0448\u0438\u0440\u043e\u0442\u044b Dataframe \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438\" width=\"1658\" height=\"980\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4e1\/33f\/62a\/4e133f62a166a222d1948b49b589f666.png\"\/><\/p>\n<div><figcaption>\u0418\u0437-\u0437\u0430 \u0448\u0438\u0440\u043e\u0442\u044b Dataframe \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0434\u0430\u0442\u044b, \u0432\u0441\u0435 \u043e\u043d\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u043a <code>object<\/code>. \u0414\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043c\u0435\u0442\u043e\u0434 <a href=\"https:\/\/pandas.pydata.org\/pandas-docs\/stable\/reference\/api\/pandas.to_datetime.html\" rel=\"noopener noreferrer nofollow\">to_datetime<\/a>. <\/p>\n<pre><code class=\"python\">df['\u0414\u0430\u0442\u0430 \u0414\u0414\u0423'] = pd.to_datetime(df['\u0414\u0430\u0442\u0430 \u0414\u0414\u0423'], format='%d\/%m\/%y') df['\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438'] = pd.to_datetime(df['\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438'], format='%d\/%m\/%y') df['\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u044c'] = pd.to_datetime(df['\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u044c'], format='%d\/%m\/%y') df['\u0414\u0430\u0442\u0430 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f'] = pd.to_datetime(df['\u0414\u0430\u0442\u0430 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f'], format='%d\/%m\/%y')<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0417\u0430\u0434\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435 \u0444\u0430\u0439\u043b\u0430<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041a\u0440\u043e\u043c\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432, \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d: \u0437\u0430\u0434\u0430\u0442\u044c \u0434\u0430\u0442\u0443 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435. \u041d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>parse_dates<\/code><\/p>\n<pre><code class=\"python\">pd.read_csv('file_name.csv', parse_dates=['Deal_date'])<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u043b\u0438 <code>object<\/code>. \u0412\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0446\u0435\u043b\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0442 \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u0443 \u043d\u0430\u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u044f\u0442\u0430\u044f, \u0430 \u043d\u0435 \u0442\u043e\u0447\u043a\u0430. \u041d\u0430\u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u0430\u043f\u044f\u0442\u0443\u044e \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0442\u0438\u043f.<\/p>\n<pre><code class=\"python\">df['\u041f\u043b\u043e\u0449\u0430\u0434\u044c'] = df['\u041f\u043b\u043e\u0449\u0430\u0434\u044c'].str.replace(',', '.').astype(float) df['lat'] = df['lat'].str.replace(',', '.').astype(float) df['lng'] = df['lng'].str.replace(',', '.').astype(float) df['\u0426\u0435\u043d\u0430 \u043a\u0432. \u043c'] = df['\u0426\u0435\u043d\u0430 \u043a\u0432. \u043c'].str.replace(',', '.').astype(float)<\/code><\/pre>\n<blockquote>\n<p>\u0412 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f DRY (\u041d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0439 \u0441\u0432\u043e\u0439 \u043a\u043e\u0434). \u041f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 Python, \u0446\u0438\u043a\u043b\u044b, \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432.<\/p>\n<\/blockquote>\n<p>\u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c &#171;\u0421\u0440\u043e\u043a \u0441\u0434\u0430\u0447\u0438&#187;. \u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u044b\u043b\u043e &#171;2 \u043a\u0432 2017&#187;, \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u0446\u0438\u0444\u0440\u0443 \u0441 4 \u0437\u043d\u0430\u043a\u0430\u043c\u0438 &#8212; \u0433\u043e\u0434 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0af\/d11\/393\/0afd11393974744f5845c653665b0efe.png\" alt=\"3 \u043a\u0432 2019 \u0433\u043e\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 01.01.2019\" title=\"3 \u043a\u0432 2019 \u0433\u043e\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 01.01.2019\" width=\"966\" height=\"602\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0af\/d11\/393\/0afd11393974744f5845c653665b0efe.png\"\/><\/p>\n<div><figcaption><strong>3 \u043a\u0432 2019 \u0433\u043e\u0434\u0430<\/strong> \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 <strong>01.01.2019<\/strong><\/figcaption><\/div>\n<\/figure>\n<pre><code class=\"python\">df['\u0413\u043e\u0434 \u0441\u0434\u0430\u0447\u0438'] = df['\u0421\u0440\u043e\u043a \u0441\u0434\u0430\u0447\u0438'].str.extract(r'(\\d{4})')  #\u0412\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0433\u043e\u0434 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 df['\u0413\u043e\u0434 \u0441\u0434\u0430\u0447\u0438'] = pd.to_datetime(df['\u0413\u043e\u0434 \u0441\u0434\u0430\u0447\u0438'])  #\u043f\u0440\u0438\u0441\u0432\u0430\u0435\u0432\u0430\u043c \u0442\u0438\u043f \u0434\u0430\u0442\u044b<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u0430\u0442\u0443 \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0434\u0430\u0436. \u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u044b\u043b\u043e &#171;2020.2&#187; \u0442\u0438\u043f float. \u0414\u0435\u043b\u0438\u043c \u0434\u043e \u0442\u043e\u0447\u043a\u0438 \u0431\u0435\u0440\u044f \u043f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0447\u0438\u0441\u043b\u0430. \u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u044f \u0447\u0438\u0441\u043b\u043e float \u043a \u0441\u0442\u0440\u043e\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0da\/438\/286\/0da43828636560bdf904a9330e8e4d10.png\" alt=\"\" title=\"\" width=\"712\" height=\"426\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0da\/438\/286\/0da43828636560bdf904a9330e8e4d10.png\"\/><\/figure>\n<pre><code class=\"python\">df['\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a'] = df['\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a'].astype(str) df['\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a'] = df['\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a'].astype(str).str.split('.').str[0]<\/code><\/pre>\n<p>\u0412 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u043d\u0430\u044f \u0446\u0435\u043d\u0430 \u0441\u0434\u0435\u043b\u043a\u0438 \u0443 \u043d\u0430\u0441 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u0443\u0441\u0442\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0435\u0435 \u0438\u0437 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0438 \u0446\u0435\u043d\u044b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u0440\u0430. <\/p>\n<pre><code class=\"python\">#\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0432 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 df['\u0426\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f'] = df['\u0426\u0435\u043d\u0430 \u043a\u0432. \u043c'] * df['\u041f\u043b\u043e\u0449\u0430\u0434\u044c'] <\/code><\/pre>\n<p>\u0412 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 SQL \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u042d\u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u043e \u043c\u044b \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u043d\u0430 \u043b\u0430\u0442\u0438\u043d\u0438\u0446\u0435. <\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">new_column_names = {     'ID \u0416\u041a': 'id_zhk',     '\u0416\u041a \u0440\u0443\u0441': 'zhk_rus',     '\u0416\u041a \u0430\u043d\u0433\u043b': 'zhk_angl',     '\u0420\u0430\u0439\u043e\u043d \u0413\u043e\u0440\u043e\u0434': 'rayon_gorod',     '\u041e\u043a\u0440\u0443\u0433 \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435': 'okrug_napravleniye',     '\u0420\u0435\u0433\u0438\u043e\u043d': 'region',     '\u0410\u0422\u0414': 'atd',     '\u0417\u0430\u0441\u0442\u0440\u043e\u0439\u0449\u0438\u043a \u0416\u041a': 'zastroishchik_zhk',     '\u041f\u043b\u043e\u0449\u0430\u0434\u044c': 'ploshchad',     '\u041a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u0441\u0442\u044c': 'komnatnost',     '\u0422\u0438\u043f \u041a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u0441\u0442\u0438': 'tip_komnatnosti',     '\u042d\u0442\u0430\u0436': 'etazh',     '\u041d\u043e\u043c\u0435\u0440': 'nomer',     '\u0422\u0438\u043f \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f': 'tip_pomeshcheniya',     '\u041a\u043e\u0440\u043f\u0443\u0441': 'korpus',     '\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438': 'data_registratsii',     '\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'usloviya_obremeneniya',     '\u041d\u043e\u043c\u0435\u0440 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'nomer_obremeneniya',     '\u0414\u0430\u0442\u0430 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'data_obremeneniya',     '\u0417\u0430\u043b\u043e\u0433\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0435\u043b\u044c': 'zalogkhozhatel',     '\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'dlitel_obremeneniya',     '\u0422\u0438\u043f \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'tip_obremeneniya',     '\u041e\u0446\u0435\u043d\u043a\u0430 \u0446\u0435\u043d\u044b': 'otsenka_tseny',     '\u0414\u0430\u0442\u0430 \u0414\u0414\u0423': 'data_ddu',     '\u0423\u0441\u0442\u0443\u043f\u043a\u0430': 'ustupka',     '\u041a\u0443\u043f\u0438\u043b \u043b\u043e\u0442\u043e\u0432 \u0432 \u0416\u041a': 'kupil_lotov_v_zhk',     'ID \u041a\u043e\u0440\u043f\u0443\u0441': 'id_korpus',     '\u043a\u043b\u0430\u0441\u0441': 'klass',     '\u0421\u0440\u043e\u043a \u0441\u0434\u0430\u0447\u0438': 'srok_sdachi',     '\u0421\u0442\u0430\u0434\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430': 'stadiya_stroitelstva',     'lat': 'lat',     'lng': 'lng',     '\u0418\u043f\u043e\u0442\u0435\u043a\u0430': 'ipoteka',     '\u0421\u0435\u043a\u0446\u0438\u044f': 'sektsiya',     '\u041e\u0442\u0434\u0435\u043b\u043a\u0430': 'otdelka',     '\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a': 'start_prodazh_k',     '\u041f\u0440\u043e\u0434\u0430\u0432\u0435\u0446 \u042e\u041b': 'prodavets_yul',     '\u0417\u043e\u043d\u0430': 'zona',     '\u041a\u0443\u043f\u0438\u043b \u043a\u0432 \u0438 \u0430\u043f \u0432 \u0416\u041a': 'kupil_kv_i_ap_v_zhk',     '\u0421\u0442\u0430\u0434\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0432 \u0434\u0430\u0442\u0443 \u0414\u0414\u0423': 'stadiya_stroitelstva_v_data_ddu',     '\u0426\u0435\u043d\u0430 \u0414\u0414\u0423': 'tsena_ddu',     '\u0426\u0435\u043d\u0430 \u0441\u043e \u0441\u043a\u0438\u0434\u043a\u043e\u0439': 'tsena_so_skidkoy',     '\u0422\u0438\u043f \u0441\u0434\u0435\u043b\u043a\u0438': 'tip_sdelki',     '\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0434\u0430\u0442': 'raznitsa_dat',     '\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u044c': 'data_registratsii_model',     'version': 'version',     '\u0423\u0447\u0430\u0441\u0442\u043e\u043a': 'uchastok',     '\u0424\u0418\u041e': 'fio',     '\u0426\u0435\u043d\u0430 \u043a\u0432. \u043c': 'price_m2',     'ID \u0434\u043e\u043c.\u0440\u0444': 'id_dom_rf',     '\u041e\u0446\u0435\u043d\u043a\u0430 \u043f\u043e \u0415\u0418\u0421\u0416\u0421': 'otsenka_po_eiszhzs',     'Unnamed: 51': 'unnamed_51',     '\u0413\u043e\u0434 \u0441\u0434\u0430\u0447\u0438': 'god_sdachi',     '\u0426\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f': 'price' }  df = df.rename(columns=new_column_names)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h2>\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043b\u044f \u042d\u0440\u043c\u0438\u0442\u0430\u0436\u0430<\/h2>\n<p>\u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0446\u0435\u043d\u0430 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 \u043f\u0440\u0438\u0442\u044f\u0436\u0435\u043d\u0438\u044f \u0432 \u0442\u0443\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0435. \u0412 \u043d\u0430\u0448\u0435\u043c \u0444\u0430\u0439\u043b\u0435 \u0435\u0441\u0442\u044c 2 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0441 \u0448\u0438\u0440\u043e\u0442\u043e\u0439 \u0438 \u0434\u043e\u043b\u0433\u043e\u0442\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438. \u042d\u0442\u043e\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0416\u041a, \u0430 \u043d\u0435 \u043a \u0441\u0434\u0435\u043b\u043a\u0430\u043c \u0432 \u043d\u0438\u0445 (\u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c), \u043d\u043e \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e \u0438 \u0442\u0430\u043c \u0438 \u0442\u0430\u043c.<\/p>\n<pre><code class=\"python\"># \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u042d\u0440\u043c\u0438\u0442\u0430\u0436\u0430 a = (59.939442, 30.314131)   #\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043b\u044f\u043c\u0431\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c df.apply(lambda row: geodesic(a, (row['lat'], row['lng'])).km, axis=1)<\/code><\/pre>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4b3\/c96\/bae\/4b3c96baed876f8d5ccb35f5b8b2742f.png\" alt=\"\u041f\u0440\u0430\u0432\u044b\u0439 \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043e \u042d\u0440\u043c\u0438\u0442\u0430\u0436\u0430\" title=\"\u041f\u0440\u0430\u0432\u044b\u0439 \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043e \u042d\u0440\u043c\u0438\u0442\u0430\u0436\u0430\" width=\"520\" height=\"440\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4b3\/c96\/bae\/4b3c96baed876f8d5ccb35f5b8b2742f.png\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0430\u0432\u044b\u0439 \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043e \u042d\u0440\u043c\u0438\u0442\u0430\u0436\u0430<\/figcaption><\/div>\n<\/figure>\n<h2>\u0418\u043c\u043f\u043e\u0440\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u043a\u0443\u0440\u0441\u0435 \u0434\u043e\u043b\u043b\u0430\u0440\u0430, \u0437\u043e\u043b\u043e\u0442\u0430, \u041c\u043e\u0441\u0431\u0438\u0440\u0436\u0438 \u0438 \u043d\u0435\u0444\u0442\u0438.<\/h2>\n<p>\u042f \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043b \u0432\u0441\u0435 \u0442\u0435 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0441 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0414\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043c\u0435\u0441\u0442\u0430 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435, \u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u043e\u043a\u0430\u0436\u0443 \u043b\u0438\u0448\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u043d \u0437\u0430\u043b\u0438\u0432\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0441\u0434\u0435\u043b\u043a\u0430\u043c. \u0411\u044b\u043b\u0430 \u0442\u0430 \u0436\u0435 \u0441\u0430\u043c\u0430\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u043d\u0443\u0436\u043d\u044b\u043c \u0442\u0438\u043f\u0430\u043c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/45b\/a17\/11f\/45ba1711fd60a1bb7c3f8accf698db9c.png\" alt=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u0443\u0440\u0441\u044b \u0441 2013 \u043f\u043e 2014 \u0433\u043e\u0434\" title=\"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u0443\u0440\u0441\u044b \u0441 2013 \u043f\u043e 2014 \u0433\u043e\u0434\" width=\"1900\" height=\"1434\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/45b\/a17\/11f\/45ba1711fd60a1bb7c3f8accf698db9c.png\"\/><\/p>\n<div><figcaption>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u0443\u0440\u0441\u044b \u0441 2013 \u043f\u043e 2014 \u0433\u043e\u0434<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 6 \u0442\u0430\u0431\u043b\u0438\u0446, \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043d\u0438\u0436\u0435 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ol>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>df<\/code> <\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0436\u0438\u043b\u044b\u0445 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043e\u0432, \u0433\u0434\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u044d\u0442\u0438 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b. \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>zk<\/code> <\/p>\n<\/li>\n<li>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438\u0437 4 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>gold<\/code><\/p>\n<\/li>\n<\/ol>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438<\/h2>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0435\u0441\u044c \u043f\u043e\u0447\u0442\u0438 \u0432\u0435\u0441\u044c python \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f, \u043e\u043d \u0431\u044b\u043b \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 csv, \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0438\u0445, \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u042d\u0440\u043c\u0438\u0442\u0430\u0436\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043e\u0433\u0430\u0449\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043d\u0430 \u043f\u043e\u0434\u043e\u0431\u0438\u0435 <code>dadata<\/code>, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438\u043b\u0438 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u043e\u0442\u0442\u043e\u043a\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. <\/p>\n<p>\u041d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u0441\u0435\u0439\u0447\u0430\u0441 \u2013 \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 SQL, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043f\u0438\u0442\u043e\u043d\u0430, \u043f\u0440\u043e\u0449\u0435 \u0432 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0438 \u0434\u0438\u0434\u0436\u0438\u0442\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c\u0438, \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u043c\u0438 \u0438\u043b\u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u043c\u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430\u043c\u0438.<\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u0431\u0435\u0437\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0443\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 <a href=\"https:\/\/www.sqlite.org\/index.html\" rel=\"noopener noreferrer nofollow\">SQlite<\/a>. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u0444\u0430\u0439\u043b\u0435 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0435\u0441\u0442\u044c \u0432 \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. <\/p>\n<pre><code class=\"python\">con = sqlite3.connect('spb_estate') cur = con.cursor()<\/code><\/pre>\n<p>to_sql \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 dataframe \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"python\">zk.to_sql('zk',con,index=False,if_exists='replace')   #\u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0416\u041a df.to_sql('df',con,index=False,if_exists='replace')   #\u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0434\u0435\u043b\u043e\u043a ind.to_sql('ind',con,index=False,if_exists='replace')  #\u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043c\u043e\u0441\u0431\u0438\u0440\u0436\u0438 \u0441 2013 q.to_sql('q',con,index=False,if_exists='replace')   #\u043a\u0443\u0440\u0441\u044b \u0434\u043e\u043b\u043b\u0430\u0440\u0430 \u0441 2013 oil.to_sql('oil',con,index=False,if_exists='replace')   #\u043a\u0443\u0440\u0441\u044b \u043d\u0430 brent  metals.to_sql('metals', con, index=False, if_exists='replace')   #\u043a\u0443\u0440\u0441\u044b \u043d\u0430 \u0437\u043e\u043b\u043e\u0442\u043e<\/code><\/pre>\n<h2>Jupyter notebook \u0438\u043b\u0438 DBeaver \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b SQL <\/h2>\n<p>\u0413\u0434\u0435 \u0438 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u2013 \u0432\u043e\u043f\u0440\u043e\u0441 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0438 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0438. \u0412\u044b\u0448\u0435 \u043c\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 (\u043f\u0430\u043f\u043a\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0433\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 Python) \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0444\u0430\u0438\u043b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 SQLite. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c \u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b-\u043a\u043b\u0438\u0435\u043d\u0442\u0430 DBeaver. <\/p>\n<ul>\n<li>\n<p>\u0421\u043a\u0430\u0447\u0430\u0439\u0442\u0435 DBeaver<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 SQLite<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430, &#171;\u0431\u043e\u0431\u0435\u0440&#187; \u0441\u043a\u0430\u0447\u0430\u0435\u0442 \u0438\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 &#171;SQL script&#187; \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043b\u0435\u0432\u0430 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0448\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432\u044b\u0448\u0435. \u0421\u043f\u0440\u0430\u0432\u0430 &#8212; \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f SQL \u043a\u043e\u043c\u0430\u043d\u0434.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d4a\/da3\/e7b\/d4ada3e7becd9d0c32ec0d6d59567555.png\" alt=\"\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 DBeaver\" title=\"\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 DBeaver\" width=\"2666\" height=\"1634\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d4a\/da3\/e7b\/d4ada3e7becd9d0c32ec0d6d59567555.png\"\/><\/p>\n<div><figcaption>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 DBeaver<\/figcaption><\/div>\n<\/figure>\n<h2>SQL \u0432 Python<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430, \u0441\u0445\u0435\u043c\u044b \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439 \u0442\u0430\u0431\u043b\u0438\u0446, \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a, \u0430 \u0445\u043e\u0442\u0438\u0442\u0435 \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u0430, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 Python, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SQL. \u041c\u044b \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f. \u041d\u0430 \u0432\u0445\u043e\u0434 \u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043d\u0430\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<pre><code class=\"python\">def select(sql):   return pd.read_sql(sql,con)<\/code><\/pre>\n<p>\u041d\u0438\u043a\u0430\u043a\u043e\u0439 \u043c\u0430\u0433\u0438\u0438 \u0432 \u044d\u0442\u043e\u043c \u043d\u0435\u0442, \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435 <code>Pandas<\/code> \u043c\u043e\u0436\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u0444\u0430\u0439\u043b\u044b sql. \u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e <code>sql<\/code> &#171;\u0437\u0430\u0448\u0438\u0442\u0430&#187; \u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 SQL, \u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 conn \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u0430\u0434\u0440\u0435\u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. (\u0441\u043c \u0432\u044b\u0448\u0435 <code>con = sqlite3.connect('spb_estate')<\/code> )<\/p>\n<pre><code class=\"python\">#\u041f\u0430\u043d\u0434\u0430\u0441, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0439 sql \u0444\u0430\u0438\u043b, \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443, \u043f\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 con pd.read_sql('SELECT avg(price) FROM df', con)   pd.read_sql('\u0417\u0430\u043f\u0440\u043e\u0441 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435', \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0434\u0435\u043b\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435)<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0437\u0430\u043b\u0438\u043b\u0438\u0441\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0411\u0414. \u0414\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0430\u0431\u043b\u0438\u0446 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0432 \u043d\u0430\u0448\u0435\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442:<\/p>\n<pre><code class=\"python\">sql = '''select name from sqlite_master where type = 'table';'''  #\u0437\u0430\u043f\u0440\u043e\u0441 select(sql)   #\u0432\u044b\u0432\u043e\u0434 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/760\/432\/113\/7604321134bf9659c6677088e8c6ab8a.png\" alt=\"\u0417\u0430\u043f\u0440\u043e\u0441 \u043a \u0431\u0430\u0437\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\" title=\"\u0417\u0430\u043f\u0440\u043e\u0441 \u043a \u0431\u0430\u0437\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\" width=\"982\" height=\"410\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/760\/432\/113\/7604321134bf9659c6677088e8c6ab8a.png\"\/><\/p>\n<div><figcaption>\u0417\u0430\u043f\u0440\u043e\u0441 \u043a \u0431\u0430\u0437\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u0418 \u0432\u043e\u0442 \u043e\u043d\u0438 \u043d\u0430\u0448\u0438 6 \u0442\u0430\u0431\u043b\u0438\u0446. \u041c\u043e\u0436\u043d\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u0434 \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 sql<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044f\u0437\u044b\u043a\u0430 SQL<\/h3>\n<p>\u0412\u0441\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b SQL \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0441 \u043f\u043e\u0434\u0441\u0442\u0432\u0435\u0442\u043a\u043e\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430.<\/p>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 <code>select<\/code> , \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u0430\u043c\u044b\u0435 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"sql\">select --\u0434\u043e\u0441\u0442\u0430\u043d\u044c \u043c\u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435:     max(data_registratsii), -- \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0430\u0442\u0430     min(data_registratsii), -- \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0430\u0442\u0430     min(price), max(price),      min(price_m2),      max(price_m2),      min(ploshchad),      max(ploshchad) from df   -- \u0438\u0437 \u043a\u0430\u043a\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b? where data_registratsii not null -- \u0433\u0434\u0435 \u0434\u0430\u0442\u0430 \u043d\u0435 \u043f\u0443\u0441\u0442\u0430\u044f and price not null -- \u0438 \u0446\u0435\u043d\u0430 \u043d\u0435 \u043f\u0443\u0441\u0442\u0430\u044f and -- \u0438 tip_pomeshcheniya = '\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430'  and price != 0.00 -- \u0446\u0435\u043d\u0430 \u043d\u0430 \u043a\u0432\u0430\u0442\u0438\u0440\u044b \u043d\u0435 0<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/11d\/091\/f8b\/11d091f8baee914b8c54cd7b6b4efef1.png\" alt=\"\u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u043e\u0449\u0430\u0434\u044c 15 \u043c\u0435\u0442\u0440\u043e\u0432, \u044d\u0442\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u043c\u0435\u0448\u043d\u044b\u043c, \u0438 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0432\u044b\u0431\u0440\u043e\u0441, \u043d\u043e \u043b\u044e\u0434\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b! \u042d\u0442\u043e \u0442\u043e\u0447\u043d\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430, \u0430 \u043d\u0435 \u043a\u043b\u0430\u0434\u043e\u0432\u043a\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0445 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043b\u0438 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435\" title=\"\u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u043e\u0449\u0430\u0434\u044c 15 \u043c\u0435\u0442\u0440\u043e\u0432, \u044d\u0442\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u043c\u0435\u0448\u043d\u044b\u043c, \u0438 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0432\u044b\u0431\u0440\u043e\u0441, \u043d\u043e \u043b\u044e\u0434\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b! \u042d\u0442\u043e \u0442\u043e\u0447\u043d\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430, \u0430 \u043d\u0435 \u043a\u043b\u0430\u0434\u043e\u0432\u043a\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0445 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043b\u0438 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435\" width=\"1598\" height=\"136\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/11d\/091\/f8b\/11d091f8baee914b8c54cd7b6b4efef1.png\"\/><\/p>\n<div><figcaption>\u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u043e\u0449\u0430\u0434\u044c 15 \u043c\u0435\u0442\u0440\u043e\u0432, \u044d\u0442\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u043c\u0435\u0448\u043d\u044b\u043c, \u0438 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0432\u044b\u0431\u0440\u043e\u0441, \u043d\u043e \u043b\u044e\u0434\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b! \u042d\u0442\u043e \u0442\u043e\u0447\u043d\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430, \u0430 \u043d\u0435 \u043a\u043b\u0430\u0434\u043e\u0432\u043a\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0445 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043b\u0438 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u0432\u043e\u0434\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u043a\u0438 \u043f\u043e \u0433\u043e\u0434\u0430\u043c \u043e\u0442 2014 \u0434\u043e 2023 \u0432 \u043e\u0434\u043d\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435, \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u0445 \u0432\u044b\u0432\u0435\u0434\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438. <\/p>\n<pre><code class=\"sql\">Select --\u0434\u043e\u0441\u0442\u0430\u043d\u044c \u043c\u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435:     -- \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u0434\u0430\u0442\u0443 \u043a \u043d\u0430\u0447\u0430\u043b\u0443 \u0433\u043e\u0434\u0430     date(data_registratsii, 'start of year') as date_year     , count(*) -- \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a     , avg(price)     , avg(price_m2) -- \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0441\u0434\u0435\u043b\u043a\u0438     , avg(ipoteka)      , avg(ploshchad)     , min(ploshchad)     , avg(dlitel_obremeneniya)   from df -- \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0440\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 where data_registratsii not null  and price not null  and tip_pomeshcheniya = '\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430'  and price != 0.00 -- \u0444\u0438\u043b\u044c\u0440\u0443\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441   -- \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e \u0434\u0430\u0442\u0435 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 group by date(data_registratsii, 'start of year') <\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/790\/c8c\/0fd\/790c8c0fd3952191ed8ef8c7c9d8c301.png\" alt=\"\u0421\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0433\u043e\u0434\u0443 \u0441\u0434\u0435\u043b\u043a\u0438\" title=\"\u0421\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0433\u043e\u0434\u0443 \u0441\u0434\u0435\u043b\u043a\u0438\" width=\"1730\" height=\"506\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/790\/c8c\/0fd\/790c8c0fd3952191ed8ef8c7c9d8c301.png\"\/><\/p>\n<div><figcaption>\u0421\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0433\u043e\u0434\u0443 \u0441\u0434\u0435\u043b\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438, \u0447\u0442\u043e \u0434\u043e 2016 \u0433\u043e\u0434\u0430 \u0441\u0434\u0435\u043b\u043e\u043a \u043a\u0440\u0430\u0439\u043d\u0435 \u043c\u0430\u043b\u043e \u0438 \u0431\u0440\u0430\u0442\u044c \u0438\u0445 \u0432 \u0430\u043d\u0430\u043b\u0438\u0437 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442. \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0441\u0434\u0435\u043b\u043a\u0430\u0445 \u043d\u0430 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0441 2016 \u043f\u043e 2023 \u0433\u043e\u0434.<\/p>\n<p>\u0423 \u043d\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0445, \u0431\u043e\u043b\u0435\u0435 <strong>200 000 \u0441\u0442\u0440\u043e\u043a \u0441\u0434\u0435\u043b\u043e\u043a<\/strong>, \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0446\u0435\u043d\u044b. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u043e\u0431\u044a\u0435\u043c \u0438\u0445 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u0438 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0438\u0435 \u0446\u0435\u043d\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u0438\u0445 \u0433\u0440\u0443\u043f\u043f. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c &#171;\u043a\u043e\u0440\u0437\u0438\u043d\u044b&#187; \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043a\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>ntile<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u0432\u0435\u0440\u043d\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 1 \u0434\u043e 10.<\/p>\n<pre><code class=\"sql\">with cte as (  -- \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0430\u0448\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0438\u043b\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0434\u0435\u043b\u043a\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b SELECT    price,    price_m2,    ploshchad,    data_registratsii,    NTILE(10) OVER (ORDER BY ploshchad) as percentile FROM df where data_registratsii not null    and price not null and tip_pomeshcheniya = '\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430' )  -- \u041f\u043e\u0442\u043e\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e percentile select    percentile,    min(ploshchad),    max(ploshchad),    avg(price),    avg(price_m2),    count(*) from cte group by 1 -- \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u0432 select<\/code><\/pre>\n<p>SQLite \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043a\u043e\u043d\u043d\u043e\u0439 \u0440\u0430\u043d\u0436\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>ntile<\/code> \u0440\u0430\u0437\u0431\u0438\u043b \u0432\u0435\u0441\u044c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 10 \u0440\u0430\u0432\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0440\u044b\u043d\u043a\u0430, \u043f\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441\u0432\u043e\u0438\u0445 \u0446\u0435\u043d \u0441 \u0446\u0435\u043d\u0430\u043c\u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f1f\/6ba\/866\/f1f6ba8666594554ec70639a27f2bdb3.png\" alt=\"\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435.\" title=\"\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435.\" width=\"1192\" height=\"526\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f1f\/6ba\/866\/f1f6ba8666594554ec70639a27f2bdb3.png\"\/><\/p>\n<div><figcaption>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435.<\/figcaption><\/div>\n<\/figure>\n<h2>\u0421\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e join<\/h2>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041a\u0430\u043a\u043e\u0439 \u0431\u044b\u043b \u043a\u0443\u0440\u0441 \u0434\u043e\u043b\u043b\u0430\u0440\u0430 \u043d\u0430 \u0434\u0430\u0442\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u0434\u0435\u043b\u043a\u0438? \u041c\u044b \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0434\u0435\u043b\u043e\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u043e \u043a\u043b\u044e\u0447\u0443 \u0434\u0430\u0442\u044b \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0412 excel \u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433 \u2013 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0412\u041f\u0420. <\/p>\n<pre><code class=\"sql\">select      id_zhk,     data_registratsii,     zhk_rus,     price,       ipoteka,     ploshchad,      price_m2 as rub_m2_price,     price_m2 \/ Quote as m2_dollar_price,     price_m2 \/ Quote \/ oil.close  as m2_oil_price,     price_m2 \/ Quote \/ gold as m2_gold_price,     price_m2 \/ OPEN as mosex_m2_pice  from df -- \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0434\u043e\u043b\u043b\u0430\u0440\u0443 \u043d\u0430 \u0434\u0430\u0442\u0443 join q on q.date = df.data_registratsii  -- \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043d\u0435\u0444\u0442\u0438 \u043d\u0430 \u0434\u0430\u0442\u0443 join oil on oil.date = df.data_registratsii   -- \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0446\u0435\u043d\u0435 \u0437\u043e\u043b\u043e\u0442\u0430 join metals on metals.date = df.data_registratsii   -- \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0446\u0435\u043d\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 join ind on ind.TRADEDATE = df.data_registratsii  where data_registratsii not null  and price not null  and tip_pomeshcheniya = '\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430'  and price != 0.00  and data_registratsii > '2015.01.01'  and name = '\u0418\u043d\u0434\u0435\u043a\u0441 \u041c\u043e\u0441\u0411\u0438\u0440\u0436\u0438' order by date(data_registratsii)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1fa\/426\/07f\/1fa42607fad0f345402a428166247124.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0434\u0435\u043b\u043e\u043a\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0434\u0435\u043b\u043e\u043a\" width=\"2288\" height=\"738\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1fa\/426\/07f\/1fa42607fad0f345402a428166247124.png\"\/><\/p>\n<div><figcaption>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0434\u0435\u043b\u043e\u043a<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0443\u0437\u043d\u0430\u0435\u043c \u043a\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0431\u044b\u043b \u043f\u0440\u043e\u0434\u0430\u043d \u0432 \u0438\u043f\u043e\u0442\u0435\u043a\u0443 \u0432 \u0442\u043e\u043c \u0438\u043b\u0438 \u0438\u043d\u043e\u043c \u0433\u043e\u0434\u0443, \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u043c \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u044e \u043d\u0430 \u0440\u044b\u043d\u043a\u0435.<\/p>\n<pre><code class=\"sql\">select      date(data_registratsii, 'start of month') as date_m,     avg(ipoteka) as ipoteka from df  join q on q.date = df.data_registratsii join oil on oil.date = df.data_registratsii join metals on metals.date = df.data_registratsii where data_registratsii not null  and price not null  and tip_pomeshcheniya = '\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430'  and price != 0.00  and data_registratsii > '2015.01.01'  group by 1 order by 1 asc<\/code><\/pre>\n<p>\u0418\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0443\u0436\u0435 \u0432 python \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <code>seaborn<\/code> \u0438 <code>matplotlib<\/code><\/p>\n<pre><code class=\"python\">plt.figure(figsize=(20, 6))   #\u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 sns.lineplot(x='date_m', y='ipoteka', data=select(sql))    #\u043e\u0441\u0438 \u0438 dataframe sns.set_style(\"darkgrid\")    #\u0441\u0442\u0438\u043b\u044c plt.title('\u0414\u043e\u043b\u044f \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0438\u043f\u043e\u0442\u0435\u043a\u0443')   #\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a plt.xticks(rotation=90)   #\u043d\u0430\u043a\u043b\u043e\u043d \u0434\u0430\u0442 plt.show()   #\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ee\/6fa\/966\/9ee6fa9663d1d3ec394ff5962c35a290.png\" alt=\"\u0414\u043e\u043b\u044f \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0438\u043f\u043e\u0442\u0435\u043a\u0443 \u0441 2016 \u043f\u043e 2023\" title=\"\u0414\u043e\u043b\u044f \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0438\u043f\u043e\u0442\u0435\u043a\u0443 \u0441 2016 \u043f\u043e 2023\" width=\"2640\" height=\"1212\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9ee\/6fa\/966\/9ee6fa9663d1d3ec394ff5962c35a290.png\"\/><\/p>\n<div><figcaption>\u0414\u043e\u043b\u044f \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0438\u043f\u043e\u0442\u0435\u043a\u0443 \u0441 2016 \u043f\u043e 2023<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/90b\/ecb\/53a\/90becb53ac45f2d2a8c80df03263de2a.png\" alt=\"\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0440\u043e\u043a\u0430 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f (\u0438\u043f\u043e\u0442\u0435\u043a\u0438) \u0432\u044b\u0440\u043e\u0441\u043b\u0430 \u0432 2 \u0440\u0430\u0437\u0430\" title=\"\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0440\u043e\u043a\u0430 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f (\u0438\u043f\u043e\u0442\u0435\u043a\u0438) \u0432\u044b\u0440\u043e\u0441\u043b\u0430 \u0432 2 \u0440\u0430\u0437\u0430\" width=\"2624\" height=\"1226\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/90b\/ecb\/53a\/90becb53ac45f2d2a8c80df03263de2a.png\"\/><\/p>\n<div><figcaption>\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0440\u043e\u043a\u0430 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f (\u0438\u043f\u043e\u0442\u0435\u043a\u0438) \u0432\u044b\u0440\u043e\u0441\u043b\u0430 \u0432 2 \u0440\u0430\u0437\u0430<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ed8\/1e1\/c5f\/ed81e1c5f6a5badeadd87c20f3a07060.png\" alt=\"\u0426\u0435\u043d\u0430 \u043c\u0435\u0442\u0440\u0430 \u0432 \u0434\u043e\u043b\u043b\u0430\u0440\u0430\u0445 \u0421\u0428\u0410\" title=\"\u0426\u0435\u043d\u0430 \u043c\u0435\u0442\u0440\u0430 \u0432 \u0434\u043e\u043b\u043b\u0430\u0440\u0430\u0445 \u0421\u0428\u0410\" width=\"2626\" height=\"1240\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ed8\/1e1\/c5f\/ed81e1c5f6a5badeadd87c20f3a07060.png\"\/><\/p>\n<div><figcaption>\u0426\u0435\u043d\u0430 \u043c\u0435\u0442\u0440\u0430 \u0432 \u0434\u043e\u043b\u043b\u0430\u0440\u0430\u0445 \u0421\u0428\u0410<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043e\u0442 \u042d\u0440\u043c\u0438\u0442\u0430\u0436\u0430 \u0432 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u0430\u0445. \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 \u0445\u043e\u0442\u0438\u043c \u0432\u0438\u0434\u0435\u0442\u044c \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \u0432 \u0433\u043e\u0434\u0430\u0445, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <a href=\"https:\/\/www.w3schools.com\/sql\/sql_case.asp\" rel=\"noopener noreferrer nofollow\">case when<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 &#171;\u0415\u0441\u043b\u0438 \u0434\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 2017 \u0438 2018 \u0433\u043e\u0434\u043e\u043c, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430&#187;. \u042d\u0442\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u043c\u043e\u0438\u0445 \u043b\u044e\u0431\u0438\u043c\u044b \u0438 \u0447\u0430\u0441\u0442\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439.<\/p>\n<pre><code class=\"sql\">select      round(distance_hermitage, -2),     count(case when data_registratsii between '2016-01-01' and '2017-01-01' then data_registratsii end) as s2016,     count(case when data_registratsii between '2017-01-01' and '2018-01-01' then data_registratsii end) as s2017,     count(case when data_registratsii between '2018-01-01' and '2019-01-01' then data_registratsii end) as s2018,     count(case when data_registratsii between '2019-01-01' and '2020-01-01' then data_registratsii end) as s2019,     count(case when data_registratsii between '2020-01-01' and '2021-01-01' then data_registratsii end) as s2020,     count(case when data_registratsii between '2021-01-01' and '2022-01-01' then data_registratsii end) as s2021,     count(case when data_registratsii between '2022-01-01' and '2023-01-01' then data_registratsii end) as s2022,     count(case when data_registratsii between '2023-01-01' and '2024-01-01' then data_registratsii end) as s2023 from df  join q on q.date = df.data_registratsii join oil on oil.date = df.data_registratsii join metals on metals.date = df.data_registratsii where data_registratsii not null and price not null and tip_pomeshcheniya = '\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430' and price != 0.00 and data_registratsii > '2015.01.01'  group by 1 order by 1 asc limit 20<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0435\u043f\u043b\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0443 <code>dataframe<\/code>(\u043a\u0430\u043a \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 excel), \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044f\u0447\u0435\u0435\u043a \u0432 <code>dataframe<\/code>. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0441\u0442\u0440\u043e\u0439\u0449\u0438\u043a\u0443, \u0442\u0430\u043a\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0446\u0435\u043d\u043e\u0439 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0437\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u0421\u041f\u0431. <\/p>\n<pre><code class=\"python\">select(sql).style.background_gradient(axis=None, vmin=1, vmax=10000)  <\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c07\/0b1\/d0a\/c070b1d0aa66e7b6733a3c105e1e648d.png\" alt=\"\u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0438\u0442\u0435\u0440\u0441\u043a\u0438\u0445 \u043d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u0435\u043a\" title=\"\u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0438\u0442\u0435\u0440\u0441\u043a\u0438\u0445 \u043d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u0435\u043a\" width=\"1340\" height=\"958\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c07\/0b1\/d0a\/c070b1d0aa66e7b6733a3c105e1e648d.png\"\/><\/p>\n<div><figcaption>\u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0438\u0442\u0435\u0440\u0441\u043a\u0438\u0445 \u043d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u0435\u043a<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043a\u0430\u043a\u043e\u043c \u0416\u041a \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u043f\u0435\u0440\u0438\u043e\u0434 \u0441 1 \u044f\u043d\u0432\u0430\u0440\u044f 2020 \u0433\u043e\u0434\u0430? \u0412\u044b \u0443\u0436\u0435 \u0441\u0430\u043c\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0431\u0435\u0437 \u0442\u0440\u0443\u0434\u0430 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441.<\/p>\n<pre><code class=\"sql\">select      df.zhk_rus,     okrug_napravleniye,     rayon_gorod,     count(data_registratsii) as cnt_deal,     avg(price_m2) as rub_m2_price,     avg(price_m2) \/ Quote as m2_dollar_price,     avg(ipoteka) as ipoteka_precent,     max(date(god_sdachi)) as max_god_sdachi,     min(distance_hermitage)      from df  join q on q.date = df.data_registratsii where data_registratsii not null and price not null  and tip_pomeshcheniya = '\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430' and price != 0.00  and data_registratsii > '2020.01.01'  group by 1,2 -- \u0433\u0440\u0443\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e 1 \u0438 2 \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u0432 select order by 4 desc -- \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438 \u043f\u043e 4 \u0441\u0442\u043e\u0431\u0446\u0443 \u0432 select<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e51\/04f\/e30\/e5104fe30d6623399842864f6d879a89.png\" alt=\"\u0412 \u0416\u041a \u041d\u043e\u0432\u044b\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u044b 2896 \u0441\u0434\u0435\u043b\u043e\u043a\" title=\"\u0412 \u0416\u041a \u041d\u043e\u0432\u044b\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u044b 2896 \u0441\u0434\u0435\u043b\u043e\u043a\" width=\"2536\" height=\"956\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e51\/04f\/e30\/e5104fe30d6623399842864f6d879a89.png\"\/><\/p>\n<div><figcaption>\u0412 \u0416\u041a \u041d\u043e\u0432\u044b\u0435 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u044b 2896 \u0441\u0434\u0435\u043b\u043e\u043a<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a\u0430\u044f \u0442\u0440\u043e\u0439\u043a\u0430 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u0432 \u0438\u043f\u043e\u0442\u0435\u0447\u043d\u043e\u043c \u043a\u0440\u0435\u0434\u0438\u0442\u043e\u0432\u0430\u043d\u0438\u0438 \u0441 2016 \u0433\u043e\u0434\u0430 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0434\u0435\u043b\u043e\u043a?<\/p>\n<pre><code class=\"sql\">select      zalogkhozhatel,     count(data_registratsii) as cnt_deal,     sum(price),     avg(dlitel_obremeneniya),     avg(price_m2) as rub_m2_price      from df  join q on q.date = df.data_registratsii join oil on oil.date = df.data_registratsii join metals on metals.date = df.data_registratsii where data_registratsii not null and price not null and tip_pomeshcheniya = '\u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430' and price != 0.00 and data_registratsii > '2016.01.01'  group by 1 order by 2 desc limit 10<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d17\/18d\/77f\/d1718d77f3d290847bc8f5793c6fafe5.png\" width=\"1318\" height=\"520\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d17\/18d\/77f\/d1718d77f3d290847bc8f5793c6fafe5.png\"\/><\/figure>\n<pre><code class=\"python\">plt.figure(figsize=(20, 8)) sns.barplot(x='zalogkhozhatel', y='cnt_deal', data=select(sql)) sns.set_style(\"darkgrid\") plt.title('\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0434\u0435\u043b\u043e\u043a \u0441 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0441 2016 \u0433\u043e\u0434\u0430 \u043f\u043e \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u0432\u0430\u0440\u0442\u0430\u043b 2023 \u0433\u043e\u0434\u0430 \u0432 \u0421\u043f\u0431') plt.xticks(rotation=90) plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/457\/036\/f07\/457036f07fa50928d24a7532103bf728.png\" alt=\"\u0422\u0440\u043e\u0439\u043a\u0430 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u0421\u0431\u0435\u0440\u0431\u0430\u043d\u043a, \u0412\u0422\u0411, \u0411\u0430\u043d\u043a \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\" title=\"\u0422\u0440\u043e\u0439\u043a\u0430 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u0421\u0431\u0435\u0440\u0431\u0430\u043d\u043a, \u0412\u0422\u0411, \u0411\u0430\u043d\u043a \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\" width=\"3324\" height=\"1736\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/457\/036\/f07\/457036f07fa50928d24a7532103bf728.png\"\/><\/p>\n<div><figcaption>\u0422\u0440\u043e\u0439\u043a\u0430 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u0421\u0431\u0435\u0440\u0431\u0430\u043d\u043a, \u0412\u0422\u0411, \u0411\u0430\u043d\u043a \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433<\/figcaption><\/div>\n<\/figure>\n<h2>\u0412\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u0442\u0438\u043f\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0430\u043d\u0430\u043b\u0438\u0437 \u0446\u0435\u043d \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432, \u0442\u043e\u0432\u0430\u0440\u043d\u044b\u0445 \u0437\u0430\u043f\u0430\u0441\u043e\u0432 \u0438 \u043f\u0440\u043e\u0434\u0430\u0436, \u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0430\u043c\u0438 \u0438\u043b\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0434\u0430.<\/p>\n<p>\u0412\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f \u0441 excel-\u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u044b\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438, \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u043e\u0442\u043e\u0432\u0438\u0442 \u043d\u0443\u0436\u043d\u044b\u0435 \u0432\u0430\u043c \u043e\u0442\u0447\u0435\u0442\u044b!<\/p>\n<p>P.S.<\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u043c \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u043b\u043e\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442.<\/p>\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\/797701\/\"> https:\/\/habr.com\/ru\/articles\/797701\/<\/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<blockquote>\n<p>\u00ab\u0417\u0430\u0447\u0435\u043c \u043c\u043d\u0435 SQL \u0438 python?\u00bb\u00a0\u2014 \u0437\u0430\u0434\u0430\u044e\u0442 \u0440\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0438 \u0438\u043b\u0438\u00a0\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u043f\u043e\u00a0\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0443, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u00a0\u0441\u0444\u0435\u0440\u0435 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438, \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0438, \u0443\u0441\u043b\u0443\u0433 \u0434\u043b\u044f\u00a0\u0431\u0438\u0437\u043d\u0435\u0441\u0430: \u00ab\u0423 \u043d\u0430\u0441 \u043d\u0435\u0442 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u0442 \u043b\u043e\u0433\u043e\u0432, \u043c\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438 \u0432\u00a0excel\u00bb.<\/p>\n<\/blockquote>\n<p>\u0414\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0438 \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f Power query (\u0447\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u0420\u0424 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u0440\u0443\u0434\u043d\u0435\u0435 \u0438 \u0442\u0440\u0443\u0434\u043d\u0435\u0435). \u041d\u043e \u0443 \u0432\u0430\u0441 \u0442\u043e\u0447\u043d\u043e \u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u043e\u0442 \u0441\u043c\u0435\u0436\u043d\u044b\u0445 \u043e\u0442\u0434\u0435\u043b\u043e\u0432, \u0438\u0437 CRM\/CDP, MES, \u0410\u0421\u0423 \u0422\u041f. \u042d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u0432 \u0432\u0438\u0434\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u0432\u044b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0412\u041f\u0420, \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442\u0435 \u0432\u043e\u0440\u043e\u043d\u043a\u043e\u0439, \u0447\u0438\u0441\u0442\u0438\u0442\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e &#171;\u041d\u0430\u0439\u0442\u0438 \u0438\u043b\u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c&#187;, \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u0434\u043d\u0438\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Pivot table.<\/p>\n<p>\u041a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 Excel \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u043a\u0440\u043e\u043c\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432.<\/p>\n<ul>\n<li>\n<p>\u041d\u0443\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 VBA, \u0447\u0442\u043e\u0431\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u0443: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0447\u0438\u0449\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0438\u043b\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0432\u0438\u0434\u0443. \u0418\u043b\u0438 \u0432\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432 it \u043e\u0442\u0434\u0435\u043b\u0435, \u0430 \u043e\u043d\u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u043e \u043d\u0435 \u0441\u043f\u0435\u0448\u0430\u0442 \u0432\u0430\u043c \u043f\u043e\u043c\u043e\u0447\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0443\u0434\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438, \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044d\u043a\u0430\u043f\u044b. \u041a\u043e\u0434 \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0430 \u043d\u0430 \u043d\u0430\u043b\u0430\u0434\u043a\u0443 \u043c\u043e\u0436\u0435\u0442 \u0443\u0439\u0442\u0438 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0443\u0436\u043d\u0430\u00a0\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0430\u00a0\u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a\u00a0Windows, \u0447\u0442\u043e\u00a0\u0441\u0435\u0439\u0447\u0430\u0441 \u043a\u0440\u0430\u0439\u043d\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f\u00a0\u043c\u043d\u043e\u0433\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0432\u00a0\u0420\u0424 \u0441\u00a0\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c \u043d\u0430\u00a0Linux. \u0410\u00a0python \u0438 \u0421\u0423\u0411\u0414 (\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 SQLite \u0438\u043b\u0438\u00a0PostgreSQL) \u0438\u043c\u0435\u044e\u0442\u00a0\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0434 \u043c\u0430\u043a\u0440\u043e\u0441\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f Excel. <\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 excel \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0432 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0441\u0442\u0440\u043e\u043a, \u0438 \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u0445 (\u0431\u043e\u043b\u0435\u0435 200 000 \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u043e\u0444\u0438\u0441\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445)<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0441\u0435 \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0421\u0423\u0411\u0414. \u0412\u0430\u043c \u0434\u0430\u0436\u0435 \u043d\u0435\u00a0\u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440. \u0410 \u0432\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a\u00a0\u044d\u0442\u043e\u0439 \u0421\u0423\u0411\u0414\u00a0\u2014 SQL, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0432\u043b\u0430\u0434\u0435\u0442\u044c \u043d\u0430 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0437\u0430 2-3 \u043c\u0435\u0441\u044f\u0446\u0430 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043e\u043a. Python \u0434\u043b\u044f \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0412\u00a0\u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435, \u044f\u00a0\u0431\u0443\u0434\u0443 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043f\u0440\u044f\u043c\u044b\u0445 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 SQL vs Excel \u0438\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a\u00a0\u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041a \u0434\u0435\u043b\u0443!<\/p>\n<h2>\u0417\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p>\u0418\u043c\u0435\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430, \u043e \u043f\u0440\u043e\u0434\u0430\u0436\u0435 \u043a\u0432\u0430\u0440\u0442\u0438\u0440 \u0432 \u043d\u043e\u0432\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 csv, \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0443 \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435, \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043e \u0442\u043e\u043c, \u0432 \u043a\u0430\u043a\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435 \u0421\u041f\u0431 \u043b\u0443\u0447\u0448\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0416\u041a, \u0433\u0434\u0435 \u0431\u044b\u043b \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0440\u043e\u0441\u0442 \u0446\u0435\u043d \u0438 \u0447\u0442\u043e \u043d\u0430 \u043d\u0435\u0433\u043e \u0432\u043b\u0438\u044f\u0435\u0442? \u041a\u0430\u043a \u0440\u043e\u0441\u043b\u0430 \u0438\u043b\u0438 \u043f\u0430\u0434\u0430\u043b\u0430 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u043a\u0442\u0438\u0432\u043e\u0432? <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0438\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 csv<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0435\u0441\u044f\u0446 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0441\u0434\u0435\u043b\u043a\u0430\u0445, \u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0448 \u043e\u0442\u0447\u0435\u0442. \u0427\u0442\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0435\u0439\u0447\u0430\u0441, \u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c:<\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0444\u0430\u0439\u043b\u044b \u0432 Python, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u043e\u0434\u0443\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0447\u0438\u0441\u0442\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u043c\u0443\u0441\u043e\u0440\u0430 (\u0437\u0430\u043f\u044f\u0442\u044b\u0435, \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0434\u0430\u0442\u044b)<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u041f\u0438\u0442\u0435\u0440\u0430 \u0434\u043e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u0437\u0430 30 \u0441\u0435\u043a\u0443\u043d\u0434<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430 1 \u043c\u0438\u043d\u0443\u0442\u0443 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0421\u0423\u0411\u0414 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c\u0441\u044f \u043a \u043d\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0432 SQL<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0435\u0434\u0438\u043d\u0438\u043c 5 \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u043e\u0434\u043d\u0443.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u0438 \u0441\u0432\u043e\u0434\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443<\/p>\n<\/li>\n<\/ul>\n<p>\u0413\u0434\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c? \u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u2013 \u044d\u0442\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/code.visualstudio.com\/\" rel=\"noopener noreferrer nofollow\">VSCode<\/a>, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 <a href=\"https:\/\/anaconda.org\/\" rel=\"noopener noreferrer nofollow\">anaconda<\/a>. \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 VS\u0421ode \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 &#171;New file&#187;, \u0430 \u0437\u0430\u0442\u0435\u043c &#171;Jupiter Notebook&#187;.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0412\u044b\u0431\u043e\u0440 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f anaconda3 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b, \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 ipynb \u0432 VSCode<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u0438, \u0442\u0430\u043a\u0436\u0435 \u0438\u0445 \u0435\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u042d\u0442\u043e \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c\u0438 &#171;\u043a\u0443\u0441\u043a\u0438&#187; \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041c\u043e\u0434\u0443\u043b\u044c <code>Geopy<\/code> \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 <code>pip install geopy<\/code>\u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c conda\/anaconda \u0435\u0433\u043e \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0447\u0435\u0440\u0435\u0437 <code>pip<\/code>.<\/p>\n<pre><code class=\"python\">import pandas as pd   #\u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 import sqlite3    #\u0421\u0423\u0411\u0414 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0411\u0414. \u0421\u043a\u043e\u0440\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 duckBD:) from geopy.distance import geodesic   #\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c import matplotlib as plt    #\u0433\u0440\u0430\u0444\u0438\u043a\u0438 import seaborn as sns    #\u0433\u0440\u0430\u0444\u0438\u043a\u0438<\/code><\/pre>\n<h2>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b<\/h2>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430 \u0432 Jupyter Notebook \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u0432\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0435 \u0438\u043b\u0438 \u0432 <code>output<\/code><\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0418\u043c\u043f\u043e\u0440\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Pandas \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u0438 \u0438\u043c\u043f\u043e\u0440\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>read_csv<\/code>, \u0443\u043a\u0430\u0437\u0430\u0432 \u0430\u0434\u0440\u0435\u0441, \u0433\u0434\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438 \u0441\u0441\u044b\u043b\u043a\u0443 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0438\u043b\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435. Pandas \u043c\u043e\u0436\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0438\u043f\u044b \u0444\u0430\u0439\u043b\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u0430\u043c\u043f sql, json, spss, sas.<\/p>\n<pre><code class=\"python\">df = pd.read_csv(\"\/Users\/andrew\/Documents\/DataSets\/Dataflat_Oct_2023_LO\/realty_sold_07112023_LO.csv\", sep = ';') df   #\u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/code><\/pre>\n<figure class=\"full-width\">\n<div><figcaption>\u0411\u043e\u043b\u0435\u0435 60 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 DataFrame<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f\u00a0\u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u00a0\u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u043a\u0440\u0443\u043f\u043d\u0435\u0435, \u0438 \u043c\u044b \u043d\u0435\u00a0\u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438. \u041f\u043e\u043a\u0430 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 <code>DataFrame<\/code> \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <a href=\"https:\/\/pandas.pydata.org\/pandas-docs\/stable\/getting_started\/index.html\" rel=\"noopener noreferrer nofollow\">Pandas<\/a>. \u042d\u0442\u043e \u043c\u043d\u043e\u0433\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u0438\u043b\u0438\u00a0\u043f\u0440\u043e\u0449\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0430\u044f \u043d\u0430\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0438\u043b\u0438\u00a0\u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>10 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043c sample<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0432\u0435\u0434\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043e\u043a \u0432 <code>DataFrame<\/code> <\/p>\n<figure class=\"full-width\">\n<div><figcaption>231 008 \u0441\u0442\u0440\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0434\u0435\u043b\u043e\u043a \u043f\u043e \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430\u043c<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e, \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e 20 \u043a\u043e\u043b\u043e\u043d\u043e\u043a. \u0412 \u043e\u043f\u0446\u0438\u044f\u0445 Pandas \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0441\u043a\u0440\u043e\u043b\u043b \u0432\u043b\u0435\u0432\u043e, \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0438\u0441\u044c \u0432\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b. <\/p>\n<pre><code class=\"python\">pd.options.display.float_format = '{:.2f}'.format  # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a. pd.set_option('display.max_columns', 500)   # \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a. pd.set_option('display.max_rows', 500)   <\/code><\/pre>\n<h2>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>\u041c\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 csv \u0444\u0430\u0439\u043b\u0430, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u043e\u0433\u043e<strong> <\/strong>\u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435, \u0438 \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432\u0430\u0441 \u043d\u0435 \u043e\u0431\u0440\u0430\u0434\u0443\u0435\u0442, \u0447\u0442\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 excel, Pandas \u043d\u0435 \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u0443\u0433\u0430\u0434\u0430\u0442\u044c \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0444\u0430\u0439\u043b\u0430 (\u0441\u0442\u0440\u043e\u043a\u0430, \u0447\u0438\u0441\u043b\u043e, \u0434\u0430\u0442\u0430). \u0422\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044f\u0432\u043d\u043e, \u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u0433\u043e \u0441\u0442\u043e\u0438\u0442, \u0442\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043c\u044b \u044d\u0442\u043e \u043e\u0434\u043d\u0430\u0436\u0434\u044b, \u0438 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e, \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u043b\u0438\u0441\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0418\u0437-\u0437\u0430 \u0448\u0438\u0440\u043e\u0442\u044b Dataframe \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043d\u0430 2 \u0447\u0430\u0441\u0442\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0434\u0430\u0442\u044b, \u0432\u0441\u0435 \u043e\u043d\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u043a <code>object<\/code>. \u0414\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043c\u0435\u0442\u043e\u0434 <a href=\"https:\/\/pandas.pydata.org\/pandas-docs\/stable\/reference\/api\/pandas.to_datetime.html\" rel=\"noopener noreferrer nofollow\">to_datetime<\/a>. <\/p>\n<pre><code class=\"python\">df['\u0414\u0430\u0442\u0430 \u0414\u0414\u0423'] = pd.to_datetime(df['\u0414\u0430\u0442\u0430 \u0414\u0414\u0423'], format='%d\/%m\/%y') df['\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438'] = pd.to_datetime(df['\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438'], format='%d\/%m\/%y') df['\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u044c'] = pd.to_datetime(df['\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u044c'], format='%d\/%m\/%y') df['\u0414\u0430\u0442\u0430 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f'] = pd.to_datetime(df['\u0414\u0430\u0442\u0430 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f'], format='%d\/%m\/%y')<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0417\u0430\u0434\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435 \u0444\u0430\u0439\u043b\u0430<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041a\u0440\u043e\u043c\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432, \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d: \u0437\u0430\u0434\u0430\u0442\u044c \u0434\u0430\u0442\u0443 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435. \u041d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>parse_dates<\/code><\/p>\n<pre><code class=\"python\">pd.read_csv('file_name.csv', parse_dates=['Deal_date'])<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u043b\u0438 <code>object<\/code>. \u0412\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0446\u0435\u043b\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0442 \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u0443 \u043d\u0430\u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u044f\u0442\u0430\u044f, \u0430 \u043d\u0435 \u0442\u043e\u0447\u043a\u0430. \u041d\u0430\u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u0430\u043f\u044f\u0442\u0443\u044e \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0442\u0438\u043f.<\/p>\n<pre><code class=\"python\">df['\u041f\u043b\u043e\u0449\u0430\u0434\u044c'] = df['\u041f\u043b\u043e\u0449\u0430\u0434\u044c'].str.replace(',', '.').astype(float) df['lat'] = df['lat'].str.replace(',', '.').astype(float) df['lng'] = df['lng'].str.replace(',', '.').astype(float) df['\u0426\u0435\u043d\u0430 \u043a\u0432. \u043c'] = df['\u0426\u0435\u043d\u0430 \u043a\u0432. \u043c'].str.replace(',', '.').astype(float)<\/code><\/pre>\n<blockquote>\n<p>\u0412 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f DRY (\u041d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0439 \u0441\u0432\u043e\u0439 \u043a\u043e\u0434). \u041f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 Python, \u0446\u0438\u043a\u043b\u044b, \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432.<\/p>\n<\/blockquote>\n<p>\u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c &#171;\u0421\u0440\u043e\u043a \u0441\u0434\u0430\u0447\u0438&#187;. \u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u044b\u043b\u043e &#171;2 \u043a\u0432 2017&#187;, \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u043c \u0446\u0438\u0444\u0440\u0443 \u0441 4 \u0437\u043d\u0430\u043a\u0430\u043c\u0438 &#8212; \u0433\u043e\u0434 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. <\/p>\n<figure class=\"full-width\">\n<div><figcaption><strong>3 \u043a\u0432 2019 \u0433\u043e\u0434\u0430<\/strong> \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 <strong>01.01.2019<\/strong><\/figcaption><\/div>\n<\/figure>\n<pre><code class=\"python\">df['\u0413\u043e\u0434 \u0441\u0434\u0430\u0447\u0438'] = df['\u0421\u0440\u043e\u043a \u0441\u0434\u0430\u0447\u0438'].str.extract(r'(\\d{4})')  #\u0412\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0433\u043e\u0434 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 df['\u0413\u043e\u0434 \u0441\u0434\u0430\u0447\u0438'] = pd.to_datetime(df['\u0413\u043e\u0434 \u0441\u0434\u0430\u0447\u0438'])  #\u043f\u0440\u0438\u0441\u0432\u0430\u0435\u0432\u0430\u043c \u0442\u0438\u043f \u0434\u0430\u0442\u044b<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0434\u0430\u0442\u0443 \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0434\u0430\u0436. \u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u044b\u043b\u043e &#171;2020.2&#187; \u0442\u0438\u043f float. \u0414\u0435\u043b\u0438\u043c \u0434\u043e \u0442\u043e\u0447\u043a\u0438 \u0431\u0435\u0440\u044f \u043f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0447\u0438\u0441\u043b\u0430. \u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u044f \u0447\u0438\u0441\u043b\u043e float \u043a \u0441\u0442\u0440\u043e\u043a\u0435.<\/p>\n<figure class=\"full-width\"><\/figure>\n<pre><code class=\"python\">df['\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a'] = df['\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a'].astype(str) df['\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a'] = df['\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a'].astype(str).str.split('.').str[0]<\/code><\/pre>\n<p>\u0412 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u043d\u0430\u044f \u0446\u0435\u043d\u0430 \u0441\u0434\u0435\u043b\u043a\u0438 \u0443 \u043d\u0430\u0441 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u0443\u0441\u0442\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0435\u0435 \u0438\u0437 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0438 \u0446\u0435\u043d\u044b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u0440\u0430. <\/p>\n<pre><code class=\"python\">#\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0432 \u0434\u0430\u0442\u0430\u0441\u0435\u0442 df['\u0426\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f'] = df['\u0426\u0435\u043d\u0430 \u043a\u0432. \u043c'] * df['\u041f\u043b\u043e\u0449\u0430\u0434\u044c'] <\/code><\/pre>\n<p>\u0412 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 SQL \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u042d\u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u043e \u043c\u044b \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u043d\u0430 \u043b\u0430\u0442\u0438\u043d\u0438\u0446\u0435. <\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">new_column_names = {     'ID \u0416\u041a': 'id_zhk',     '\u0416\u041a \u0440\u0443\u0441': 'zhk_rus',     '\u0416\u041a \u0430\u043d\u0433\u043b': 'zhk_angl',     '\u0420\u0430\u0439\u043e\u043d \u0413\u043e\u0440\u043e\u0434': 'rayon_gorod',     '\u041e\u043a\u0440\u0443\u0433 \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435': 'okrug_napravleniye',     '\u0420\u0435\u0433\u0438\u043e\u043d': 'region',     '\u0410\u0422\u0414': 'atd',     '\u0417\u0430\u0441\u0442\u0440\u043e\u0439\u0449\u0438\u043a \u0416\u041a': 'zastroishchik_zhk',     '\u041f\u043b\u043e\u0449\u0430\u0434\u044c': 'ploshchad',     '\u041a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u0441\u0442\u044c': 'komnatnost',     '\u0422\u0438\u043f \u041a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u0441\u0442\u0438': 'tip_komnatnosti',     '\u042d\u0442\u0430\u0436': 'etazh',     '\u041d\u043e\u043c\u0435\u0440': 'nomer',     '\u0422\u0438\u043f \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f': 'tip_pomeshcheniya',     '\u041a\u043e\u0440\u043f\u0443\u0441': 'korpus',     '\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438': 'data_registratsii',     '\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'usloviya_obremeneniya',     '\u041d\u043e\u043c\u0435\u0440 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'nomer_obremeneniya',     '\u0414\u0430\u0442\u0430 \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'data_obremeneniya',     '\u0417\u0430\u043b\u043e\u0433\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0435\u043b\u044c': 'zalogkhozhatel',     '\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'dlitel_obremeneniya',     '\u0422\u0438\u043f \u043e\u0431\u0440\u0435\u043c\u0435\u043d\u0435\u043d\u0438\u044f': 'tip_obremeneniya',     '\u041e\u0446\u0435\u043d\u043a\u0430 \u0446\u0435\u043d\u044b': 'otsenka_tseny',     '\u0414\u0430\u0442\u0430 \u0414\u0414\u0423': 'data_ddu',     '\u0423\u0441\u0442\u0443\u043f\u043a\u0430': 'ustupka',     '\u041a\u0443\u043f\u0438\u043b \u043b\u043e\u0442\u043e\u0432 \u0432 \u0416\u041a': 'kupil_lotov_v_zhk',     'ID \u041a\u043e\u0440\u043f\u0443\u0441': 'id_korpus',     '\u043a\u043b\u0430\u0441\u0441': 'klass',     '\u0421\u0440\u043e\u043a \u0441\u0434\u0430\u0447\u0438': 'srok_sdachi',     '\u0421\u0442\u0430\u0434\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430': 'stadiya_stroitelstva',     'lat': 'lat',     'lng': 'lng',     '\u0418\u043f\u043e\u0442\u0435\u043a\u0430': 'ipoteka',     '\u0421\u0435\u043a\u0446\u0438\u044f': 'sektsiya',     '\u041e\u0442\u0434\u0435\u043b\u043a\u0430': 'otdelka',     '\u0421\u0442\u0430\u0440\u0442 \u043f\u0440\u043e\u0434\u0430\u0436 \u041a': 'start_prodazh_k',     '\u041f\u0440\u043e\u0434\u0430\u0432\u0435\u0446 \u042e\u041b': 'prodavets_yul',     '\u0417\u043e\u043d\u0430': 'zona',     '\u041a\u0443\u043f\u0438\u043b \u043a\u0432 \u0438 \u0430\u043f \u0432 \u0416\u041a': 'kupil_kv_i_ap_v_zhk',     '\u0421\u0442\u0430\u0434\u0438\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0432 \u0434\u0430\u0442\u0443 \u0414\u0414\u0423': 'stadiya_stroitelstva_v_data_ddu',     '\u0426\u0435\u043d\u0430 \u0414\u0414\u0423': 'tsena_ddu',<\/code><\/pre>\n<\/div>\n<\/details>\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-369803","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/369803","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=369803"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/369803\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=369803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=369803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=369803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}