{"id":2070,"date":"2025-09-13T23:26:49","date_gmt":"2025-09-13T20:26:49","guid":{"rendered":"https:\/\/gerdlezhev.ru\/?p=2070"},"modified":"2025-09-13T23:26:49","modified_gmt":"2025-09-13T20:26:49","slug":"%d0%b1%d0%b8%d0%b1%d0%bb%d0%b8%d0%be%d1%82%d0%b5%d0%ba%d0%b0-pandas-%d0%b2-python-%d0%bf%d0%be%d0%bb%d0%bd%d1%8b%d0%b9-%d0%b3%d0%b8%d0%b4-%d0%bf%d0%be-%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba","status":"publish","type":"post","link":"https:\/\/gerdlezhev.ru\/?p=2070","title":{"rendered":"\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Pandas \u0432 Python: \u041f\u043e\u043b\u043d\u044b\u0439 \u0433\u0438\u0434 \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435: \u041f\u043e\u0447\u0435\u043c\u0443 Pandas \u2014 \u044d\u0442\u043e \u0440\u0435\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n\n\n\n<p>\u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u043c\u0438\u0440\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0430\u043b\u0438 \u043d\u043e\u0432\u043e\u0439 \u043d\u0435\u0444\u0442\u044c\u044e. \u041a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442\u044b \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0451 \u0446\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0430\u0439\u0442\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0412 \u044d\u0442\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Pandas \u0434\u043b\u044f Python \u0441\u0442\u0430\u043b\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u043f\u0440\u043e\u0440\u044b\u0432\u043e\u043c, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u043c \u043c\u043e\u0449\u043d\u044b\u0439, \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.<\/p>\n\n\n\n<p>Pandas (Panel Data) \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Python, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u0423\u044d\u0441\u043e\u043c \u041c\u0430\u043a\u041a\u0438\u043d\u043d\u0438 \u0432 2008 \u0433\u043e\u0434\u0443 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0440\u044f\u0434\u0430\u043c\u0438 \u0438 \u043f\u0430\u043d\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u043c \u0441\u0435\u043a\u0442\u043e\u0440\u0435, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u0440\u043e\u0441\u043b\u0430 \u0441\u0432\u043e\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u043c\u043a\u0438 \u0438 \u0441\u0442\u0430\u043b\u0430 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430.<\/p>\n\n\n\n<p>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 Pandas \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u043c? \u042d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043c\u043e\u0449\u044c \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c NumPy \u0441 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e\u043c \u0438 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0449\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Excel, \u043d\u043e \u0441 \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044f Pandas<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0424\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442: NumPy \u043a\u0430\u043a \u043e\u0441\u043d\u043e\u0432\u0430<\/h3>\n\n\n\n<p>Pandas \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445 NumPy, \u0447\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439. NumPy \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0430 Pandas \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0432\u0435\u0440\u0445 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u0439 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438, \u0434\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0438 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e\u0439.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n\n\n\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 Pandas \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c\u0438:<\/p>\n\n\n\n<p><strong>\u0418\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c<\/strong>: \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432<br><strong>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong>: \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e \u0434\u0430\u0436\u0435 \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0451\u043c\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<br><strong>\u0413\u0438\u0431\u043a\u043e\u0441\u0442\u044c<\/strong>: \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<br><strong>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c<\/strong>: \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b Python \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0431\u0435\u0441\u0448\u043e\u0432\u043d\u043e\u0439<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0440\u0435\u0434\u044b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n\n\n\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Pandas \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Python \u0432\u0435\u0440\u0441\u0438\u0438 3.9 \u0438\u043b\u0438 \u0432\u044b\u0448\u0435<\/li>\n\n\n\n<li>NumPy \u0432\u0435\u0440\u0441\u0438\u0438 1.22.0 \u0438\u043b\u0438 \u0432\u044b\u0448\u0435<\/li>\n\n\n\n<li>pytz \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0447\u0430\u0441\u043e\u0432\u044b\u043c\u0438 \u043f\u043e\u044f\u0441\u0430\u043c\u0438<\/li>\n\n\n\n<li>python-dateutil \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u0442<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u0421\u043f\u043e\u0441\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438<\/h3>\n\n\n\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 pip:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install pandas<\/code><\/pre>\n\n\n\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 conda:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>conda install -c conda-forge pandas<\/code><\/pre>\n\n\n\n<p><strong>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install pandas&#91;all]  # \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438\npip install pandas&#91;excel]  # \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Excel \u0444\u0430\u0439\u043b\u0430\u043c\u0438\npip install pandas&#91;plotting]  # \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0418\u043c\u043f\u043e\u0440\u0442 \u0438 \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>import pandas as pd\nimport numpy as np\n\n# \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445\npd.set_option('display.max_columns', None)  # \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b\npd.set_option('display.max_rows', 100)     # \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u043e 100 \u0441\u0442\u0440\u043e\u043a\npd.set_option('display.precision', 2)      # \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Pandas<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Series: \u041e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c<\/h3>\n\n\n\n<p>Series \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u043c\u0435\u0442\u043a\u0430\u043c\u0438 (\u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c). \u042d\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 Pandas, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u0432 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Series<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430\ndata = &#91;10, 20, 30, 40, 50]\nseries = pd.Series(data, index=&#91;'a', 'b', 'c', 'd', 'e'])\n\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f\ndict_data = {'\u044f\u043d\u0432\u0430\u0440\u044c': 1000, '\u0444\u0435\u0432\u0440\u0430\u043b\u044c': 1200, '\u043c\u0430\u0440\u0442': 1100}\nseries_dict = pd.Series(dict_data)\n\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445\nseries_int = pd.Series(&#91;1, 2, 3, 4], dtype='int32')<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 Series<\/h4>\n\n\n\n<p><strong>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>: \u041f\u0440\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u043c\u0435\u0436\u0434\u0443 Series \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443.<\/p>\n\n\n\n<p><strong>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/strong>: Series \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u043e\u0433\u0430\u0442\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430.<\/p>\n\n\n\n<p><strong>\u0413\u0438\u0431\u043a\u0430\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f<\/strong>: \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043a\u0430\u043a \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445, \u0442\u0430\u043a \u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u043d\u043e\u0433\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">DataFrame: \u0414\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/h3>\n\n\n\n<p>DataFrame \u2014 \u044d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 Pandas, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0441\u043e\u0431\u043e\u0439 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 \u043c\u0435\u0442\u043a\u0430\u043c\u0438 \u0441\u0442\u0440\u043e\u043a \u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0451 \u043a\u0430\u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e Series \u0441 \u043e\u0431\u0449\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 DataFrame<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430\u0440\u044f\ndata = {\n    '\u0418\u043c\u044f': &#91;'\u0410\u043d\u043d\u0430', '\u0411\u043e\u0440\u0438\u0441', '\u0412\u0438\u043a\u0442\u043e\u0440', '\u0413\u0430\u043b\u0438\u043d\u0430'],\n    '\u0412\u043e\u0437\u0440\u0430\u0441\u0442': &#91;25, 30, 35, 28],\n    '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': &#91;50000, 60000, 75000, 55000],\n    '\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442': &#91;'IT', '\u0424\u0438\u043d\u0430\u043d\u0441\u044b', 'IT', '\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433']\n}\ndf = pd.DataFrame(data)\n\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u0439\nemployees = &#91;\n    {'\u0418\u043c\u044f': '\u0410\u043d\u043d\u0430', '\u0412\u043e\u0437\u0440\u0430\u0441\u0442': 25, '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': 50000},\n    {'\u0418\u043c\u044f': '\u0411\u043e\u0440\u0438\u0441', '\u0412\u043e\u0437\u0440\u0430\u0441\u0442': 30, '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': 60000},\n    {'\u0418\u043c\u044f': '\u0412\u0438\u043a\u0442\u043e\u0440', '\u0412\u043e\u0437\u0440\u0430\u0441\u0442': 35, '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': 75000}\n]\ndf_from_list = pd.DataFrame(employees)\n\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 NumPy\nnumpy_data = np.random.randn(4, 3)\ndf_numpy = pd.DataFrame(numpy_data, \n                       columns=&#91;'A', 'B', 'C'], \n                       index=&#91;'\u0441\u0442\u0440\u043e\u043a\u04301', '\u0441\u0442\u0440\u043e\u043a\u04302', '\u0441\u0442\u0440\u043e\u043a\u04303', '\u0441\u0442\u0440\u043e\u043a\u04304'])<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u0410\u043d\u0430\u0442\u043e\u043c\u0438\u044f DataFrame<\/h4>\n\n\n\n<p><strong>\u0418\u043d\u0434\u0435\u043a\u0441 (Index)<\/strong>: \u041c\u0435\u0442\u043a\u0438 \u0441\u0442\u0440\u043e\u043a, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0430\u043d\u043d\u044b\u043c<br><strong>\u0421\u0442\u043e\u043b\u0431\u0446\u044b (Columns)<\/strong>: \u041c\u0435\u0442\u043a\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f Series<br><strong>\u0414\u0430\u043d\u043d\u044b\u0435 (Values)<\/strong>: \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 NumPy<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 CSV \u0444\u0430\u0439\u043b\u0430\u043c\u0438<\/h3>\n\n\n\n<p>CSV (Comma-Separated Values) \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 CSV \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438\ndf = pd.read_csv('data.csv')\n\n# \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438\ndf = pd.read_csv(\n    'data.csv',\n    sep=';',                    # \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c\n    encoding='utf-8',           # \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\n    index_col=0,               # \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\n    parse_dates=&#91;'\u0434\u0430\u0442\u0430'],      # \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0434\u0430\u0442\n    na_values=&#91;'', 'NULL'],    # \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432\n    skiprows=1,                # \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438\n    nrows=1000                 # \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0435 1000 \u0441\u0442\u0440\u043e\u043a\n)\n\n# \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432 CSV\ndf.to_csv('output.csv', \n          index=False,         # \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\n          encoding='utf-8',    # \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\n          sep=';')             # \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 Excel \u0444\u0430\u0439\u043b\u0430\u043c\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0427\u0442\u0435\u043d\u0438\u0435 Excel \u0444\u0430\u0439\u043b\u0430\ndf = pd.read_excel('data.xlsx', \n                  sheet_name='\u041b\u0438\u0441\u04421',    # \u0438\u043c\u044f \u043b\u0438\u0441\u0442\u0430\n                  header=0,              # \u0441\u0442\u0440\u043e\u043a\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432\n                  usecols='A:D')         # \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\n\n# \u0427\u0442\u0435\u043d\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043b\u0438\u0441\u0442\u043e\u0432\nexcel_dict = pd.read_excel('data.xlsx', sheet_name=None)\n\n# \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432 Excel\nwith pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer:\n    df.to_sheet(writer, sheet_name='\u0414\u0430\u043d\u043d\u044b\u0435', index=False)\n    summary.to_sheet(writer, sheet_name='\u0421\u0432\u043e\u0434\u043a\u0430', index=False)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 JSON<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0427\u0442\u0435\u043d\u0438\u0435 JSON\ndf = pd.read_json('data.json', orient='records')\n\n# \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432 JSON\ndf.to_json('output.json', \n          orient='records',    # \u043e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445\n          indent=2,            # \u043e\u0442\u0441\u0442\u0443\u043f\u044b \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438\n          date_format='iso')   # \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>import sqlite3\n\n# \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a SQLite\nconn = sqlite3.connect('database.db')\n\n# \u0427\u0442\u0435\u043d\u0438\u0435 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\ndf = pd.read_sql_query(\"SELECT * FROM employees WHERE salary &gt; 50000\", conn)\n\n# \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445\ndf.to_sql('new_table', conn, if_exists='replace', index=False)\n\nconn.close()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 Parquet<\/h3>\n\n\n\n<p>Parquet \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0427\u0442\u0435\u043d\u0438\u0435 Parquet\ndf = pd.read_parquet('data.parquet')\n\n# \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432 Parquet\ndf.to_parquet('output.parquet', \n              compression='snappy',    # \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0436\u0430\u0442\u0438\u044f\n              index=False)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0431\u0437\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e DataFrame\nprint(df.info())          # \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u043f\u0443\u0441\u0442\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\nprint(df.describe())      # \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438\nprint(df.head(10))        # \u043f\u0435\u0440\u0432\u044b\u0435 10 \u0441\u0442\u0440\u043e\u043a\nprint(df.tail(5))         # \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 5 \u0441\u0442\u0440\u043e\u043a\nprint(df.shape)           # \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c (\u0441\u0442\u0440\u043e\u043a\u0438, \u0441\u0442\u043e\u043b\u0431\u0446\u044b)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\nprint(df.isnull().sum())           # \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\nprint(df.isnull().sum().sum())     # \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432\n\n# \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\nplt.figure(figsize=(10, 6))\nsns.heatmap(df.isnull(), yticklabels=False, cbar=True, cmap='viridis')\nplt.title('\u041a\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439')\nplt.show()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0410\u043d\u0430\u043b\u0438\u0437 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435\nprint(df&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'].unique())\nprint(df&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'].nunique())         # \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445\nprint(df&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'].value_counts())    # \u043f\u043e\u0434\u0441\u0447\u0451\u0442 \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0418\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0434\u0430\u043d\u043d\u044b\u043c<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0412\u044b\u0431\u043e\u0440 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\nsingle_column = df&#91;'\u0418\u043c\u044f']                    # \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 (Series)\nmultiple_columns = df&#91;&#91;'\u0418\u043c\u044f', '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430']]  # \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 (DataFrame)\n\n# \u0412\u044b\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443\ndf.loc&#91;0]           # \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u043e \u043c\u0435\u0442\u043a\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\ndf.iloc&#91;0]          # \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438\ndf.loc&#91;0:2]         # \u0441\u0440\u0435\u0437 \u043f\u043e \u043c\u0435\u0442\u043a\u0430\u043c (\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e)\ndf.iloc&#91;0:3]        # \u0441\u0440\u0435\u0437 \u043f\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u043c (\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044f \u043a\u043e\u043d\u0435\u0446)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e\nhigh_salary = df&#91;df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] &gt; 60000]\n\n# \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\nit_high_salary = df&#91;(df&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'] == 'IT') &amp; (df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] &gt; 50000)]\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 isin \u0434\u043b\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430\ndepartments = df&#91;df&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'].isin(&#91;'IT', '\u0424\u0438\u043d\u0430\u043d\u0441\u044b'])]\n\n# \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u0430\u043c\nnames_with_a = df&#91;df&#91;'\u0418\u043c\u044f'].str.contains('\u0430', case=False)]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u041c\u0435\u0442\u043e\u0434 query \u0434\u043b\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439\nresult = df.query('\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430 &gt; 55000 and \u0412\u043e\u0437\u0440\u0430\u0441\u0442 &lt; 35')\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 loc \u0441 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438 \u0438 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\nsubset = df.loc&#91;df&#91;'\u0412\u043e\u0437\u0440\u0430\u0441\u0442'] &gt; 30, &#91;'\u0418\u043c\u044f', '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430']]\n\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\ndf_indexed = df.set_index('\u0418\u043c\u044f')<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0441 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043c\u0438\ndf_dropped = df.dropna()                    # \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043c\u0438\ndf_dropped_any = df.dropna(how='any')       # \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u043f\u0443\u0441\u043a\ndf_dropped_all = df.dropna(how='all')       # \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u044b\n\n# \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432\ndf_filled = df.fillna(0)                    # \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0443\u043b\u044f\u043c\u0438\ndf_filled_mean = df.fillna(df.mean())       # \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438\n\n# \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\nfill_values = {'\u0412\u043e\u0437\u0440\u0430\u0441\u0442': df&#91;'\u0412\u043e\u0437\u0440\u0430\u0441\u0442'].median(), \n               '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].mean()}\ndf_filled_dict = df.fillna(value=fill_values)\n\n# \u0418\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\ndf&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] = df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].interpolate(method='linear')<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0443\u0431\u043b\u0435\u0439<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u041f\u043e\u0438\u0441\u043a \u0434\u0443\u0431\u043b\u0435\u0439\nduplicates = df.duplicated()\nprint(f\"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0443\u0431\u043b\u0435\u0439: {duplicates.sum()}\")\n\n# \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0443\u0431\u043b\u0435\u0439\ndf_no_duplicates = df.drop_duplicates()\n\n# \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0434\u0443\u0431\u043b\u0435\u0439 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\ndf_no_name_duplicates = df.drop_duplicates(subset=&#91;'\u0418\u043c\u044f'])\n\n# \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0434\u0443\u0431\u043b\u044f\ndf_keep_last = df.drop_duplicates(keep='last')<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445\ndf&#91;'\u0412\u043e\u0437\u0440\u0430\u0441\u0442'] = df&#91;'\u0412\u043e\u0437\u0440\u0430\u0441\u0442'].astype('int64')\ndf&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] = df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].astype('float64')\n\n# \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f\ndf&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'] = df&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'].astype('category')\n\n# \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0432 \u0434\u0430\u0442\u044b\ndf&#91;'\u0414\u0430\u0442\u0430_\u043d\u0430\u0439\u043c\u0430'] = pd.to_datetime(df&#91;'\u0414\u0430\u0442\u0430_\u043d\u0430\u0439\u043c\u0430'], format='%Y-%m-%d')\n\n# \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438\ndf&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_cat'] = pd.Categorical(df&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'], \n                                       categories=&#91;'IT', '\u0424\u0438\u043d\u0430\u043d\u0441\u044b', '\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433'],\n                                       ordered=True)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u041c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u041f\u0440\u043e\u0441\u0442\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\ndf&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430_\u043c\u0435\u0441\u044f\u0446'] = df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] \/ 12\ndf&#91;'\u041e\u043f\u044b\u0442'] = 2024 - df&#91;'\u0413\u043e\u0434_\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f']\n\n# \u0423\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\ndf&#91;'\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f_\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b'] = np.where(df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] &gt; 60000, '\u0412\u044b\u0441\u043e\u043a\u0430\u044f', '\u0421\u0440\u0435\u0434\u043d\u044f\u044f')\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 apply \u0434\u043b\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439\ndef determine_generation(age):\n    if age &lt; 25:\n        return 'Z'\n    elif age &lt; 40:\n        return 'Millennial'\n    else:\n        return 'X'\n\ndf&#91;'\u041f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435'] = df&#91;'\u0412\u043e\u0437\u0440\u0430\u0441\u0442'].apply(determine_generation)\n\n# \u0412\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438\ndf&#91;'\u0418\u043c\u044f_\u0432\u0435\u0440\u0445\u043d\u0438\u0439'] = df&#91;'\u0418\u043c\u044f'].str.upper()\ndf&#91;'\u0414\u043b\u0438\u043d\u0430_\u0438\u043c\u0435\u043d\u0438'] = df&#91;'\u0418\u043c\u044f'].str.len()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\ndf_renamed = df.rename(columns={'\u0418\u043c\u044f': '\u0424\u0418\u041e', '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': '\u041e\u043a\u043b\u0430\u0434'})\n\n# \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043b\u043e\u0432\u0430\u0440\u044f\ncolumn_mapping = {\n    '\u0418\u043c\u044f': '\u041f\u043e\u043b\u043d\u043e\u0435_\u0438\u043c\u044f',\n    '\u0412\u043e\u0437\u0440\u0430\u0441\u0442': '\u0413\u043e\u0434\u044b',\n    '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': '\u0414\u043e\u0445\u043e\u0434'\n}\ndf_mapped = df.rename(columns=column_mapping)\n\n# \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432\ndf_index_renamed = df.rename(index={0: '\u041f\u0435\u0440\u0432\u044b\u0439', 1: '\u0412\u0442\u043e\u0440\u043e\u0439'})<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0443\ndf_sorted = df.sort_values('\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430', ascending=False)\n\n# \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\ndf_multi_sorted = df.sort_values(&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442', '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'], \n                                ascending=&#91;True, False])\n\n# \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443\ndf_index_sorted = df.sort_index()\n\n# \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432\ndf_na_sorted = df.sort_values('\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430', na_position='first')<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u0438 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u041e\u0441\u043d\u043e\u0432\u044b \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430\ngrouped = df.groupby('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442')\n\n# \u0410\u0433\u0440\u0435\u0433\u0430\u0442\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\ndept_stats = df.groupby('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442').agg({\n    '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': &#91;'mean', 'median', 'std', 'min', 'max'],\n    '\u0412\u043e\u0437\u0440\u0430\u0441\u0442': &#91;'mean', 'count']\n})\n\n# \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430\nmulti_grouped = df.groupby(&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442', '\u041f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435'])&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].mean()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439\ndef salary_range(series):\n    return series.max() - series.min()\n\ndept_range = df.groupby('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442')&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].apply(salary_range)\n\n# Transform \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u044b\u0445 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\ndf&#91;'\u0421\u0440\u0435\u0434\u043d\u044f\u044f_\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430_\u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0430'] = df.groupby('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442')&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].transform('mean')\ndf&#91;'\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435_\u043e\u0442_\u0441\u0440\u0435\u0434\u043d\u0435\u0439'] = df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] - df&#91;'\u0421\u0440\u0435\u0434\u043d\u044f\u044f_\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430_\u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0430']\n\n# Filter \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0433\u0440\u0443\u043f\u043f\nlarge_departments = df.groupby('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442').filter(lambda x: len(x) &gt; 2)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Pivot-\u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\npivot_table = df.pivot_table(\n    values='\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430',\n    index='\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442',\n    columns='\u041f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435',\n    aggfunc='mean',\n    fill_value=0\n)\n\n# \u0421\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0432\u043e\u0434\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u044f\u043c\u0438\ncomplex_pivot = df.pivot_table(\n    values=&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430', '\u0412\u043e\u0437\u0440\u0430\u0441\u0442'],\n    index=&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'],\n    aggfunc={\n        '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': &#91;'mean', 'count'],\n        '\u0412\u043e\u0437\u0440\u0430\u0441\u0442': 'mean'\n    }\n)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u0438\u0434\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 DataFrame \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438\nemployees = pd.DataFrame({\n    'ID': &#91;1, 2, 3, 4],\n    '\u0418\u043c\u044f': &#91;'\u0410\u043d\u043d\u0430', '\u0411\u043e\u0440\u0438\u0441', '\u0412\u0438\u043a\u0442\u043e\u0440', '\u0413\u0430\u043b\u0438\u043d\u0430'],\n    '\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_ID': &#91;101, 102, 101, 103]\n})\n\ndepartments = pd.DataFrame({\n    '\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_ID': &#91;101, 102, 103, 104],\n    '\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435': &#91;'IT', '\u0424\u0438\u043d\u0430\u043d\u0441\u044b', '\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433', 'HR']\n})\n\n# Inner join (\u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435)\ninner_merged = pd.merge(employees, departments, on='\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_ID', how='inner')\n\n# Left join (\u043b\u0435\u0432\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435)\nleft_merged = pd.merge(employees, departments, on='\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_ID', how='left')\n\n# Outer join (\u043f\u043e\u043b\u043d\u043e\u0435 \u0432\u043d\u0435\u0448\u043d\u0435\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435)\nouter_merged = pd.merge(employees, departments, on='\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_ID', how='outer')<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u041a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u044f DataFrames<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u044f (\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a)\ndf1 = pd.DataFrame({'A': &#91;1, 2], 'B': &#91;3, 4]})\ndf2 = pd.DataFrame({'A': &#91;5, 6], 'B': &#91;7, 8]})\nvertical_concat = pd.concat(&#91;df1, df2], ignore_index=True)\n\n# \u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u044f (\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432)\ndf3 = pd.DataFrame({'C': &#91;9, 10], 'D': &#91;11, 12]})\nhorizontal_concat = pd.concat(&#91;df1, df3], axis=1)\n\n# \u041a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0430\u0446\u0438\u044f \u0441 \u043a\u043b\u044e\u0447\u0430\u043c\u0438\nkeyed_concat = pd.concat(&#91;df1, df2], keys=&#91;'\u041f\u0435\u0440\u0432\u044b\u0439', '\u0412\u0442\u043e\u0440\u043e\u0439'])<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Join \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 join \u043c\u0435\u0442\u043e\u0434\u0430\ndf_indexed = employees.set_index('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_ID')\ndept_indexed = departments.set_index('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_ID')\njoined = df_indexed.join(dept_indexed, how='left')<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0440\u044f\u0434\u0430\u043c\u0438<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0430\u0442<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0434\u0430\u0442\ndate_range = pd.date_range('2024-01-01', periods=365, freq='D')\n\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430\nts = pd.Series(np.random.randn(365), index=date_range)\n\n# \u041f\u0430\u0440\u0441\u0438\u043d\u0433 \u0434\u0430\u0442 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\ndates_str = &#91;'2024-01-01', '2024-02-15', '2024-03-30']\nparsed_dates = pd.to_datetime(dates_str)\n\n# \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u043c\u0438 \u0434\u0430\u0442\ncustom_format = pd.to_datetime(&#91;'01-01-2024', '15-02-2024'], format='%d-%m-%Y')<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0418\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 DataFrame \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c\ndata = {\n    '\u041f\u0440\u043e\u0434\u0430\u0436\u0438': np.random.randint(100, 1000, 365),\n    '\u041f\u0440\u0438\u0431\u044b\u043b\u044c': np.random.randint(10, 100, 365)\n}\nts_df = pd.DataFrame(data, index=date_range)\n\n# \u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u043f\u043e \u0434\u0430\u0442\u0430\u043c\njanuary_data = ts_df&#91;'2024-01']\nq1_data = ts_df&#91;'2024-01':'2024-03']\nspecific_day = ts_df&#91;'2024-01-15']<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0435\u0441\u044d\u043c\u043f\u043b\u0438\u043d\u0433 \u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0410\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u044f \u043f\u043e \u043c\u0435\u0441\u044f\u0446\u0430\u043c\nmonthly_sales = ts_df.resample('M').sum()\n\n# \u0410\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u044f \u043f\u043e \u043d\u0435\u0434\u0435\u043b\u044f\u043c \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438\nweekly_stats = ts_df.resample('W').agg({\n    '\u041f\u0440\u043e\u0434\u0430\u0436\u0438': 'sum',\n    '\u041f\u0440\u0438\u0431\u044b\u043b\u044c': 'mean'\n})\n\n# \u0421\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0438\u0435 \u0441\u0440\u0435\u0434\u043d\u0438\u0435\nts_df&#91;'\u041f\u0440\u043e\u0434\u0430\u0436\u0438_MA7'] = ts_df&#91;'\u041f\u0440\u043e\u0434\u0430\u0436\u0438'].rolling(window=7).mean()\nts_df&#91;'\u041f\u0440\u043e\u0434\u0430\u0436\u0438_MA30'] = ts_df&#91;'\u041f\u0440\u043e\u0434\u0430\u0436\u0438'].rolling(window=30).mean()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0434\u0430\u0442<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u0430\u0442\nts_df&#91;'\u0413\u043e\u0434'] = ts_df.index.year\nts_df&#91;'\u041c\u0435\u0441\u044f\u0446'] = ts_df.index.month\nts_df&#91;'\u0414\u0435\u043d\u044c_\u043d\u0435\u0434\u0435\u043b\u0438'] = ts_df.index.dayofweek\nts_df&#91;'\u041a\u0432\u0430\u0440\u0442\u0430\u043b'] = ts_df.index.quarter\n\n# \u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438\nweekends = ts_df&#91;ts_df.index.dayofweek &gt;= 5]\ndecember_data = ts_df&#91;ts_df.index.month == 12]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0421\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\ntext_data = pd.DataFrame({\n    '\u0418\u043c\u044f': &#91;'  \u0410\u043d\u043d\u0430 \u0418\u0432\u0430\u043d\u043e\u0432\u0430  ', '\u0411\u041e\u0420\u0418\u0421 \u043f\u0435\u0442\u0440\u043e\u0432', '\u0432\u0438\u043a\u0442\u043e\u0440 \u0421\u0418\u0414\u041e\u0420\u041e\u0412'],\n    'Email': &#91;'anna@email.com', 'boris@DOMAIN.RU', 'viktor@site.org'],\n    '\u0422\u0435\u043b\u0435\u0444\u043e\u043d': &#91;'+7-123-456-78-90', '8(495)123-45-67', '123.456.78.90']\n})\n\n# \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u043e\u043a\ntext_data&#91;'\u0418\u043c\u044f_\u0447\u0438\u0441\u0442\u043e\u0435'] = text_data&#91;'\u0418\u043c\u044f'].str.strip().str.title()\ntext_data&#91;'Email_\u043d\u0438\u0436\u043d\u0438\u0439'] = text_data&#91;'Email'].str.lower()\n\n# \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\ntext_data&#91;'\u0418\u043c\u044f_\u0434\u043b\u0438\u043d\u0430'] = text_data&#91;'\u0418\u043c\u044f'].str.len()\ntext_data&#91;'\u0414\u043e\u043c\u0435\u043d'] = text_data&#91;'Email'].str.split('@').str&#91;1]\n\n# \u041f\u043e\u0438\u0441\u043a \u0438 \u0437\u0430\u043c\u0435\u043d\u0430\ntext_data&#91;'\u0422\u0435\u043b\u0435\u0444\u043e\u043d_\u0447\u0438\u0441\u0442\u044b\u0439'] = text_data&#91;'\u0422\u0435\u043b\u0435\u0444\u043e\u043d'].str.replace(r'&#91;^\\d]', '', regex=True)\n\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0443\ntext_data&#91;'Email_\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439'] = text_data&#91;'Email'].str.contains(r'^&#91;^@]+@&#91;^@]+\\.&#91;^@]+$', regex=True)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>import re\n\n# \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439\ntext_data&#91;'\u041a\u043e\u0434_\u0433\u043e\u0440\u043e\u0434\u0430'] = text_data&#91;'\u0422\u0435\u043b\u0435\u0444\u043e\u043d'].str.extract(r'(\\d{3})')\ntext_data&#91;'\u0418\u043c\u044f_\u0447\u0430\u0441\u0442\u0438'] = text_data&#91;'\u0418\u043c\u044f'].str.extractall(r'(\\w+)').unstack()\n\n# \u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\ntext_data&#91;&#91;'\u0418\u043c\u044f_\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435', '\u0424\u0430\u043c\u0438\u043b\u0438\u044f']] = text_data&#91;'\u0418\u043c\u044f_\u0447\u0438\u0441\u0442\u043e\u0435'].str.split(' ', expand=True)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Pandas<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>import matplotlib.pyplot as plt\n\n# \u041f\u0440\u043e\u0441\u0442\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438\ndf&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].hist(bins=20, title='\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0440\u043f\u043b\u0430\u0442')\ndf&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].plot(kind='box', title='\u0411\u043e\u043a\u0441\u043f\u043b\u043e\u0442 \u0437\u0430\u0440\u043f\u043b\u0430\u0442')\n\n# \u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u043e \u0433\u0440\u0443\u043f\u043f\u0430\u043c\ndf.groupby('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442')&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].mean().plot(kind='bar', title='\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430 \u043f\u043e \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0430\u043c')\n\n# \u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430\nnumeric_cols = df.select_dtypes(include=&#91;np.number])\ncorrelation_matrix = numeric_cols.corr()\nplt.figure(figsize=(10, 8))\nplt.imshow(correlation_matrix, cmap='coolwarm', interpolation='nearest')\nplt.colorbar()\nplt.title('\u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430')<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>import seaborn as sns\nimport plotly.express as px\n\n# Seaborn \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432\nplt.figure(figsize=(12, 6))\nsns.boxplot(data=df, x='\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442', y='\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430')\nplt.xticks(rotation=45)\nplt.title('\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0440\u043f\u043b\u0430\u0442 \u043f\u043e \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0430\u043c')\n\n# Plotly \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432\nfig = px.scatter(df, x='\u0412\u043e\u0437\u0440\u0430\u0441\u0442', y='\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430', \n                color='\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442', \n                title='\u0417\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b \u043e\u0442 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430')\nfig.show()<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0410\u043d\u0430\u043b\u0438\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438\nmemory_usage = df.memory_usage(deep=True)\nprint(\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c:\")\nprint(memory_usage)\n\n# \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445\ndef optimize_dtypes(df):\n    for col in df.columns:\n        if df&#91;col].dtype == 'object':\n            try:\n                df&#91;col] = pd.to_numeric(df&#91;col], downcast='integer')\n            except:\n                pass\n        elif df&#91;col].dtype == 'float64':\n            df&#91;col] = pd.to_numeric(df&#91;col], downcast='float')\n        elif df&#91;col].dtype == 'int64':\n            df&#91;col] = pd.to_numeric(df&#91;col], downcast='integer')\n    return df\n\ndf_optimized = optimize_dtypes(df.copy())\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\ndf&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'] = df&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'].astype('category')<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0412\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0418\u0437\u0431\u0435\u0433\u0430\u0439\u0442\u0435 \u0446\u0438\u043a\u043b\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438\n# \u041c\u0435\u0434\u043b\u0435\u043d\u043d\u043e\nresult_slow = &#91;]\nfor index, row in df.iterrows():\n    result_slow.append(row&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] * 1.1)\n\n# \u0411\u044b\u0441\u0442\u0440\u043e\nresult_fast = df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] * 1.1\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 .loc \u0434\u043b\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\ndf.loc&#91;df&#91;'\u0412\u043e\u0437\u0440\u0430\u0441\u0442'] &gt; 30, '\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f'] = '\u041e\u043f\u044b\u0442\u043d\u044b\u0439'\ndf.loc&#91;df&#91;'\u0412\u043e\u0437\u0440\u0430\u0441\u0442'] &lt;= 30, '\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f'] = '\u041c\u043e\u043b\u043e\u0434\u043e\u0439'<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0427\u0430\u043d\u043a\u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0447\u0430\u0441\u0442\u044f\u043c\u0438\nchunk_size = 10000\nprocessed_chunks = &#91;]\n\nfor chunk in pd.read_csv('large_file.csv', chunksize=chunk_size):\n    # \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0447\u0430\u043d\u043a\u0430\n    processed_chunk = chunk.groupby('category').sum()\n    processed_chunks.append(processed_chunk)\n\n# \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432\nfinal_result = pd.concat(processed_chunks)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435\u043c<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>from sklearn.model_selection import train_test_split\nfrom sklearn.preprocessing import StandardScaler, LabelEncoder\nfrom sklearn.ensemble import RandomForestRegressor\nfrom sklearn.metrics import mean_squared_error\n\n# \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445\n# \u041a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445\nle = LabelEncoder()\ndf&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_\u043a\u043e\u0434'] = le.fit_transform(df&#91;'\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442'])\n\n# \u0412\u044b\u0431\u043e\u0440 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0438 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439\nfeatures = &#91;'\u0412\u043e\u0437\u0440\u0430\u0441\u0442', '\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442_\u043a\u043e\u0434']\nX = df&#91;features]\ny = df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430']\n\n# \u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0443\u044e \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0438\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n\n# \u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432\nscaler = StandardScaler()\nX_train_scaled = scaler.fit_transform(X_train)\nX_test_scaled = scaler.transform(X_test)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438\nmodel = RandomForestRegressor(n_estimators=100, random_state=42)\nmodel.fit(X_train_scaled, y_train)\n\n# \u041f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f\npredictions = model.predict(X_test_scaled)\n\n# \u041e\u0446\u0435\u043d\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430\nmse = mean_squared_error(y_test, predictions)\nprint(f\"\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430: {mse}\")\n\n# \u0412\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432\nfeature_importance = pd.DataFrame({\n    'feature': features,\n    'importance': model.feature_importances_\n}).sort_values('importance', ascending=False)\n\nprint(feature_importance)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u0438 \u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Dask \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c\nimport dask.dataframe as dd\n\n# \u0427\u0442\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 Dask\nlarge_df = dd.read_csv('very_large_file.csv')\n\n# \u041b\u0435\u043d\u0438\u0432\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\nresult = large_df.groupby('category').value.mean()\ncomputed_result = result.compute()  # \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0430\u043a\u0441\u0435\u0441\u0441\u043e\u0440\u043e\u0432\n@pd.api.extensions.register_dataframe_accessor(\"business\")\nclass BusinessAccessor:\n    def __init__(self, pandas_obj):\n        self._obj = pandas_obj\n\n    def calculate_bonus(self, base_rate=0.1):\n        \"\"\"\u0420\u0430\u0441\u0447\u0435\u0442 \u0431\u043e\u043d\u0443\u0441\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b\"\"\"\n        return self._obj&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] * base_rate\n\n    def categorize_salary(self):\n        \"\"\"\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0440\u043f\u043b\u0430\u0442\"\"\"\n        conditions = &#91;\n            self._obj&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] &lt; 50000,\n            self._obj&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] &lt; 80000,\n            self._obj&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'] &gt;= 80000\n        ]\n        choices = &#91;'\u041d\u0438\u0437\u043a\u0430\u044f', '\u0421\u0440\u0435\u0434\u043d\u044f\u044f', '\u0412\u044b\u0441\u043e\u043a\u0430\u044f']\n        return pd.Series(np.select(conditions, choices), index=self._obj.index)\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0430\u043a\u0441\u0435\u0441\u0441\u043e\u0440\u0430\ndf&#91;'\u0411\u043e\u043d\u0443\u0441'] = df.business.calculate_bonus(0.15)\ndf&#91;'\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f_\u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b'] = df.business.categorize_salary()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>import cProfile\nimport pstats\n\n# \u041f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430\ndef heavy_operation():\n    return df.groupby('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442').apply(lambda x: x.describe())\n\n# \u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430\ncProfile.run('heavy_operation()', 'profile_stats')\nstats = pstats.Stats('profile_stats')\nstats.sort_stats('cumulative').print_stats(10)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>try:\n    # \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430\n    df = pd.read_csv('data.csv')\nexcept FileNotFoundError:\n    print(\"\u0424\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\")\n    df = pd.DataFrame()  # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u043e\u0433\u043e DataFrame\nexcept pd.errors.EmptyDataError:\n    print(\"\u0424\u0430\u0439\u043b \u043f\u0443\u0441\u0442\")\n    df = pd.DataFrame()\n\n# \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0443\u0441\u0442\u043e\u0442\u0443 DataFrame\nif df.empty:\n    print(\"DataFrame \u043f\u0443\u0441\u0442, \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435\")\n    df = create_test_data()\n\n# \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\ndef safe_column_access(df, column_name, default_value=None):\n    \"\"\"\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0443 DataFrame\"\"\"\n    if column_name in df.columns:\n        return df&#91;column_name]\n    else:\n        print(f\"\u0421\u0442\u043e\u043b\u0431\u0435\u0446 '{column_name}' \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\")\n        return pd.Series(&#91;default_value] * len(df), index=df.index)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>def validate_dataframe(df):\n    \"\"\"\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f DataFrame\"\"\"\n    issues = &#91;]\n\n    # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0443\u0441\u0442\u043e\u0442\u0443\n    if df.empty:\n        issues.append(\"DataFrame \u043f\u0443\u0441\u0442\")\n\n    # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0434\u0443\u0431\u043b\u0435\u0439\n    if df.duplicated().any():\n        issues.append(f\"\u041d\u0430\u0439\u0434\u0435\u043d\u043e {df.duplicated().sum()} \u0434\u0443\u0431\u043b\u0435\u0439\")\n\n    # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432\n    missing_data = df.isnull().sum()\n    if missing_data.any():\n        issues.append(f\"\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435: {missing_data&#91;missing_data &gt; 0].to_dict()}\")\n\n    # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445\n    for col in df.columns:\n        if df&#91;col].dtype == 'object':\n            try:\n                pd.to_numeric(df&#91;col])\n                issues.append(f\"\u0421\u0442\u043e\u043b\u0431\u0435\u0446 '{col}' \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\")\n            except:\n                pass\n\n    return issues\n\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438\nvalidation_results = validate_dataframe(df)\nfor issue in validation_results:\n    print(f\"\u26a0\ufe0f {issue}\")<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u041c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 Pandas<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>import unittest\n\nclass TestDataProcessing(unittest.TestCase):\n    def setUp(self):\n        \"\"\"\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\"\"\"\n        self.test_df = pd.DataFrame({\n            '\u0418\u043c\u044f': &#91;'\u0410\u043d\u043d\u0430', '\u0411\u043e\u0440\u0438\u0441', '\u0412\u0438\u043a\u0442\u043e\u0440'],\n            '\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430': &#91;50000, 60000, 70000],\n            '\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442': &#91;'IT', '\u0424\u0438\u043d\u0430\u043d\u0441\u044b', 'IT']\n        })\n\n    def test_salary_calculation(self):\n        \"\"\"\u0422\u0435\u0441\u0442 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u044b\"\"\"\n        mean_salary = self.test_df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430'].mean()\n        self.assertEqual(mean_salary, 60000)\n\n    def test_department_grouping(self):\n        \"\"\"\u0422\u0435\u0441\u0442 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e \u0434\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0430\u043c\"\"\"\n        grouped = self.test_df.groupby('\u0414\u0435\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442').size()\n        self.assertEqual(grouped&#91;'IT'], 2)\n        self.assertEqual(grouped&#91;'\u0424\u0438\u043d\u0430\u043d\u0441\u044b'], 1)\n\n    def test_data_types(self):\n        \"\"\"\u0422\u0435\u0441\u0442 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445\"\"\"\n        self.assertTrue(pd.api.types.is_numeric_dtype(self.test_df&#91;'\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430']))\n        self.assertTrue(pd.api.types.is_object_dtype(self.test_df&#91;'\u0418\u043c\u044f']))\n\nif __name__ == '__main__':\n    unittest.main()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Assertions \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 pandas.testing \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 DataFrames\nimport pandas.testing as pdt\n\ndef test_dataframe_equality():\n    df1 = pd.DataFrame({'A': &#91;1, 2, 3], 'B': &#91;4, 5, 6]})\n    df2 = pd.DataFrame({'A': &#91;1, 2, 3], 'B': &#91;4, 5, 6]})\n\n    pdt.assert_frame_equal(df1, df2)\n    print(\"DataFrames \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\")\n\ndef test_series_equality():\n    s1 = pd.Series(&#91;1, 2, 3])\n    s2 = pd.Series(&#91;1, 2, 3])\n\n    pdt.assert_series_equal(s1, s2)\n    print(\"Series \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\")<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u041a\u0435\u0439\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u0424\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0410\u043d\u0430\u043b\u0438\u0437 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438\ndef financial_analysis(df):\n    \"\"\"\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0439 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\"\"\"\n\n    # \u0420\u0430\u0441\u0447\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a\n    df&#91;'ROI'] = (df&#91;'\u041f\u0440\u0438\u0431\u044b\u043b\u044c'] \/ df&#91;'\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u0438']) * 100\n    df&#91;'\u041c\u0430\u0440\u0436\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c'] = (df&#91;'\u041f\u0440\u0438\u0431\u044b\u043b\u044c'] \/ df&#91;'\u0412\u044b\u0440\u0443\u0447\u043a\u0430']) * 100\n\n    # \u0421\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0438\u0435 \u0441\u0440\u0435\u0434\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u043d\u0434\u043e\u0432\n    df&#91;'\u0412\u044b\u0440\u0443\u0447\u043a\u0430_MA3'] = df&#91;'\u0412\u044b\u0440\u0443\u0447\u043a\u0430'].rolling(window=3).mean()\n    df&#91;'\u0412\u044b\u0440\u0443\u0447\u043a\u0430_MA12'] = df&#91;'\u0412\u044b\u0440\u0443\u0447\u043a\u0430'].rolling(window=12).mean()\n\n    # \u0421\u0435\u0437\u043e\u043d\u043d\u0430\u044f \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f\n    from statsmodels.tsa.seasonal import seasonal_decompose\n    decomposition = seasonal_decompose(df&#91;'\u0412\u044b\u0440\u0443\u0447\u043a\u0430'], period=12)\n\n    # \u0412\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0439\n    Q1 = df&#91;'\u041f\u0440\u0438\u0431\u044b\u043b\u044c'].quantile(0.25)\n    Q3 = df&#91;'\u041f\u0440\u0438\u0431\u044b\u043b\u044c'].quantile(0.75)\n    IQR = Q3 - Q1\n    df&#91;'\u0410\u043d\u043e\u043c\u0430\u043b\u0438\u044f'] = (df&#91;'\u041f\u0440\u0438\u0431\u044b\u043b\u044c'] &lt; (Q1 - 1.5 * IQR)) | (df&#91;'\u041f\u0440\u0438\u0431\u044b\u043b\u044c'] &gt; (Q3 + 1.5 * IQR))\n\n    return df\n\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0442\u0447\u0435\u0442\u0430\ndef generate_financial_report(df):\n    \"\"\"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0433\u043e \u043e\u0442\u0447\u0435\u0442\u0430\"\"\"\n    report = {\n        '\u041e\u0431\u0449\u0430\u044f \u0432\u044b\u0440\u0443\u0447\u043a\u0430': df&#91;'\u0412\u044b\u0440\u0443\u0447\u043a\u0430'].sum(),\n        '\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u043f\u0440\u0438\u0431\u044b\u043b\u044c': df&#91;'\u041f\u0440\u0438\u0431\u044b\u043b\u044c'].mean(),\n        '\u041b\u0443\u0447\u0448\u0438\u0439 \u043c\u0435\u0441\u044f\u0446': df.loc&#91;df&#91;'\u041f\u0440\u0438\u0431\u044b\u043b\u044c'].idxmax(), '\u041c\u0435\u0441\u044f\u0446'],\n        '\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0439': df&#91;'\u0410\u043d\u043e\u043c\u0430\u043b\u0438\u044f'].sum(),\n        '\u0421\u0440\u0435\u0434\u043d\u0438\u0439 ROI': df&#91;'ROI'].mean()\n    }\n    return report<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0410\u043d\u0430\u043b\u0438\u0437 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>def customer_segmentation(df):\n    \"\"\"\u0421\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 RFM \u0430\u043d\u0430\u043b\u0438\u0437\u0430\"\"\"\n\n    # \u0420\u0430\u0441\u0447\u0435\u0442 RFM \u043c\u0435\u0442\u0440\u0438\u043a\n    current_date = df&#91;'\u0414\u0430\u0442\u0430_\u043f\u043e\u043a\u0443\u043f\u043a\u0438'].max()\n\n    rfm = df.groupby('ID_\u043a\u043b\u0438\u0435\u043d\u0442\u0430').agg({\n        '\u0414\u0430\u0442\u0430_\u043f\u043e\u043a\u0443\u043f\u043a\u0438': lambda x: (current_date - x.max()).days,  # Recency\n        'ID_\u0437\u0430\u043a\u0430\u0437\u0430': 'count',                                      # Frequency\n        '\u0421\u0443\u043c\u043c\u0430': 'sum'                                            # Monetary\n    }).rename(columns={\n        '\u0414\u0430\u0442\u0430_\u043f\u043e\u043a\u0443\u043f\u043a\u0438': 'Recency',\n        'ID_\u0437\u0430\u043a\u0430\u0437\u0430': 'Frequency',\n        '\u0421\u0443\u043c\u043c\u0430': 'Monetary'\n    })\n\n    # \u041a\u0432\u0430\u043d\u0442\u0438\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\n    rfm&#91;'R_Score'] = pd.qcut(rfm&#91;'Recency'], 5, labels=&#91;5,4,3,2,1])\n    rfm&#91;'F_Score'] = pd.qcut(rfm&#91;'Frequency'].rank(method='first'), 5, labels=&#91;1,2,3,4,5])\n    rfm&#91;'M_Score'] = pd.qcut(rfm&#91;'Monetary'], 5, labels=&#91;1,2,3,4,5])\n\n    # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432\n    rfm&#91;'RFM_Score'] = rfm&#91;'R_Score'].astype(str) + rfm&#91;'F_Score'].astype(str) + rfm&#91;'M_Score'].astype(str)\n\n    # \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432\n    def segment_customers(rfm_score):\n        if rfm_score in &#91;'555', '554', '544', '545', '454', '455', '445']:\n            return '\u0427\u0435\u043c\u043f\u0438\u043e\u043d\u044b'\n        elif rfm_score in &#91;'543', '444', '435', '355', '354', '345', '344', '335']:\n            return '\u041b\u043e\u044f\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b'\n        elif rfm_score in &#91;'512', '511', '422', '421', '412', '411', '311']:\n            return '\u041d\u043e\u0432\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b'\n        else:\n            return '\u0414\u0440\u0443\u0433\u0438\u0435'\n\n    rfm&#91;'\u0421\u0435\u0433\u043c\u0435\u043d\u0442'] = rfm&#91;'RFM_Score'].apply(segment_customers)\n\n    return rfm<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>def production_efficiency_analysis(df):\n    \"\"\"\u0410\u043d\u0430\u043b\u0438\u0437 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430\"\"\"\n\n    # \u0420\u0430\u0441\u0447\u0435\u0442 KPI\n    df&#91;'\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c'] = (df&#91;'\u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439_\u0432\u044b\u043f\u0443\u0441\u043a'] \/ df&#91;'\u041f\u043b\u0430\u043d\u043e\u0432\u044b\u0439_\u0432\u044b\u043f\u0443\u0441\u043a']) * 100\n    df&#91;'\u041f\u0440\u043e\u0441\u0442\u043e\u0438_\u043f\u0440\u043e\u0446\u0435\u043d\u0442'] = (df&#91;'\u0412\u0440\u0435\u043c\u044f_\u043f\u0440\u043e\u0441\u0442\u043e\u044f'] \/ df&#91;'\u0420\u0430\u0431\u043e\u0447\u0435\u0435_\u0432\u0440\u0435\u043c\u044f']) * 100\n    df&#91;'\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e_\u043f\u0440\u043e\u0446\u0435\u043d\u0442'] = (df&#91;'\u0413\u043e\u0434\u043d\u044b\u0435_\u0438\u0437\u0434\u0435\u043b\u0438\u044f'] \/ df&#91;'\u041e\u0431\u0449\u0438\u0439_\u0432\u044b\u043f\u0443\u0441\u043a']) * 100\n\n    # OEE (Overall Equipment Effectiveness)\n    df&#91;'OEE'] = (df&#91;'\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c'] \/ 100) * (df&#91;'\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e_\u043f\u0440\u043e\u0446\u0435\u043d\u0442'] \/ 100) * ((100 - df&#91;'\u041f\u0440\u043e\u0441\u0442\u043e\u0438_\u043f\u0440\u043e\u0446\u0435\u043d\u0442']) \/ 100) * 100\n\n    # \u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u043e \u0441\u043c\u0435\u043d\u0430\u043c\n    shift_analysis = df.groupby('\u0421\u043c\u0435\u043d\u0430').agg({\n        '\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c': 'mean',\n        '\u041f\u0440\u043e\u0441\u0442\u043e\u0438_\u043f\u0440\u043e\u0446\u0435\u043d\u0442': 'mean',\n        '\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e_\u043f\u0440\u043e\u0446\u0435\u043d\u0442': 'mean',\n        'OEE': 'mean'\n    }).round(2)\n\n    # \u0412\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0445 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u0432\n    df&#91;'\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439_\u043f\u0435\u0440\u0438\u043e\u0434'] = (df&#91;'OEE'] &lt; df&#91;'OEE'].quantile(0.25))\n\n    return df, shift_analysis<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430\u043c\u0438<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Pandas vs NumPy<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0439<\/th><th>Pandas<\/th><th>NumPy<\/th><\/tr><\/thead><tbody><tr><td>\u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445<\/td><td>\u0413\u0435\u0442\u0435\u0440\u043e\u0433\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/td><td>\u0413\u043e\u043c\u043e\u0433\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b<\/td><\/tr><tr><td>\u0418\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f<\/td><td>\u041c\u0435\u0442\u043a\u0438 \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/td><td>\u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/td><\/tr><tr><td>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/td><td>\u0425\u043e\u0440\u043e\u0448\u0430\u044f \u0434\u043b\u044f &lt; 500K \u0441\u0442\u0440\u043e\u043a<\/td><td>\u041e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439<\/td><\/tr><tr><td>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438<\/td><td>\u0411\u043e\u043b\u044c\u0448\u0435<\/td><td>\u041c\u0435\u043d\u044c\u0448\u0435<\/td><\/tr><tr><td>\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/td><td>\u0411\u043e\u0433\u0430\u0442\u0430\u044f \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/td><td>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Pandas vs SQL<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># Pandas \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u044b SQL \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439\n\n# SELECT * FROM table WHERE condition\ndf&#91;df&#91;'column'] &gt; value]\n\n# SELECT column1, column2 FROM table\ndf&#91;&#91;'column1', 'column2']]\n\n# GROUP BY column\ndf.groupby('column').agg({'other_column': 'sum'})\n\n# JOIN\npd.merge(df1, df2, on='key')\n\n# ORDER BY\ndf.sort_values('column')\n\n# DISTINCT\ndf&#91;'column'].unique()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Pandas vs Excel<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/th><th>Excel<\/th><th>Pandas<\/th><\/tr><\/thead><tbody><tr><td>\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f<\/td><td>\u0410\u0432\u0442\u043e\u0444\u0438\u043b\u044c\u0442\u0440<\/td><td><code>df[condition]<\/code><\/td><\/tr><tr><td>\u0421\u0432\u043e\u0434\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/td><td>\u0421\u0432\u043e\u0434\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430<\/td><td><code>pivot_table()<\/code><\/td><\/tr><tr><td>\u0424\u043e\u0440\u043c\u0443\u043b\u044b<\/td><td><code>=SUM(A:A)<\/code><\/td><td><code>df['A'].sum()<\/code><\/td><\/tr><tr><td>\u0413\u0440\u0430\u0444\u0438\u043a\u0438<\/td><td>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b<\/td><td><code>df.plot()<\/code><\/td><\/tr><tr><td>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f<\/td><td>VBA<\/td><td>Python \u0441\u043a\u0440\u0438\u043f\u0442\u044b<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u0411\u0443\u0434\u0443\u0449\u0435\u0435 Pandas \u0438 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Pandas 2.0 \u0438 \u0432\u044b\u0448\u0435<\/h3>\n\n\n\n<p>\u041d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Pandas:<\/p>\n\n\n\n<p><strong>PyArrow backend<\/strong>: \u0411\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<br><strong>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 nullable \u0442\u0438\u043f\u0430\u043c\u0438<\/strong>: \u041b\u0443\u0447\u0448\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<br><strong>Copy-on-Write<\/strong>: \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438<br><strong>\u041d\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0441\u0442\u0440\u043e\u043a<\/strong>: \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0435\u043a\u0441\u0442\u0430<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 PyArrow backend\ndf_arrow = pd.DataFrame({\n    'A': pd.array(&#91;1, 2, None], dtype=\"Int64&#91;pyarrow]\"),\n    'B': pd.array(&#91;'a', 'b', 'c'], dtype=\"string&#91;pyarrow]\")\n})\n\n# \u041d\u043e\u0432\u044b\u0435 nullable \u0442\u0438\u043f\u044b\ndf_nullable = pd.DataFrame({\n    'integers': pd.array(&#91;1, 2, None], dtype='Int64'),\n    'strings': pd.array(&#91;'a', 'b', None], dtype='string'),\n    'booleans': pd.array(&#91;True, False, None], dtype='boolean')\n})<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Apache Arrow\nimport pyarrow as pa\nimport pyarrow.parquet as pq\n\n# \u0427\u0442\u0435\u043d\u0438\u0435 Parquet \u0441 Arrow\ntable = pq.read_table('data.parquet')\ndf_arrow = table.to_pandas()\n\n# \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 Dask\nimport dask.dataframe as dd\nlarge_df = dd.from_pandas(df, npartitions=4)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0427\u0435\u043a-\u043b\u0438\u0441\u0442 \u043b\u0443\u0447\u0448\u0438\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u043a<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 \u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] \u041f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n\n\n\n<li>[ ] \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n\n\n\n<li>[ ] \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b<\/li>\n\n\n\n<li>[ ] \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 \u041f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] \u0423\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443<\/li>\n\n\n\n<li>[ ] \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438<\/li>\n\n\n\n<li>[ ] \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0430\u0440\u0441\u0435\u0440\u044b \u0434\u043b\u044f \u0434\u0430\u0442<\/li>\n\n\n\n<li>[ ] \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 \u041f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0446\u0438\u043a\u043b\u043e\u0432<\/li>\n\n\n\n<li>[ ] \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c method chaining \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438 \u043a\u043e\u0434\u0430<\/li>\n\n\n\n<li>[ ] \u0412\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u044d\u0442\u0430\u043f\u0435<\/li>\n\n\n\n<li>[ ] \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 \u041f\u0440\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] \u041d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438<\/li>\n\n\n\n<li>[ ] \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n\n\n\n<li>[ ] \u0418\u0441\u043a\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u043e\u0441\u044b \u0438 \u0430\u043d\u043e\u043c\u0430\u043b\u0438\u0438<\/li>\n\n\n\n<li>[ ] \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 \u041f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438<\/li>\n\n\n\n<li>[ ] \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0441\u0445\u0435\u043c\u0443 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n\n\n\n<li>[ ] \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n\n\n\n<li>[ ] \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u043e\u0432<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n\n\n\n<li>[ ] \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c chunking \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432<\/li>\n\n\n\n<li>[ ] \u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n\n\n\n<li>[ ] \u041f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0437\u043a\u0438\u0445 \u043c\u0435\u0441\u0442<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] \u041f\u0438\u0441\u0430\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/li>\n\n\n\n<li>[ ] \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435<\/li>\n\n\n\n<li>[ ] \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c type hints \u0442\u0430\u043c, \u0433\u0434\u0435 \u044d\u0442\u043e \u0443\u043c\u0435\u0441\u0442\u043d\u043e<\/li>\n\n\n\n<li>[ ] \u041f\u043e\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0442\u0435\u0441\u0442\u0430\u043c\u0438<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435: Pandas \u043a\u0430\u043a \u043a\u0430\u0442\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0440\u043e\u0441\u0442\u0430<\/h2>\n\n\n\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Pandas \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u2014 \u044d\u0442\u043e \u0446\u0435\u043b\u0430\u044f \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0417\u0430 \u0433\u043e\u0434\u044b \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043e\u043d\u0430 \u0441\u0442\u0430\u043b\u0430 \u043d\u0435\u043e\u0442\u044a\u0435\u043c\u043b\u0435\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0441\u0442\u0435\u043a\u0430 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0434\u0430\u0442\u0430-\u0441\u0430\u0439\u0435\u043d\u0442\u0438\u0441\u0442\u0430, \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 Pandas<\/h3>\n\n\n\n<p><strong>\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong>: Pandas \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.<\/p>\n\n\n\n<p><strong>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong>: \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 NumPy, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n\n\n\n<p><strong>\u0418\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c<\/strong>: \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 Pandas \u043b\u043e\u0433\u0438\u0447\u0435\u043d \u0438 \u043f\u043e\u043d\u044f\u0442\u0435\u043d, \u0447\u0442\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432.<\/p>\n\n\n\n<p><strong>\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c<\/strong>: \u0411\u043e\u0433\u0430\u0442\u0430\u044f \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n\n\n\n<p><strong>\u0410\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435<\/strong>: \u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u041e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/h3>\n\n\n\n<p>Pandas \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0444\u0435\u0440\u0430\u0445:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0424\u0438\u043d\u0430\u043d\u0441\u044b<\/strong>: \u0410\u043d\u0430\u043b\u0438\u0437 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0438\u0441\u043a-\u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442, \u043f\u043e\u0440\u0442\u0444\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f<\/li>\n\n\n\n<li><strong>\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433<\/strong>: \u0421\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0430\u043d\u0430\u043b\u0438\u0437 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043c\u043f\u0430\u043d\u0438\u0439, A\/B \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/li>\n\n\n\n<li><strong>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e<\/strong>: \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u043f\u0440\u0435\u0434\u0438\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435<\/li>\n\n\n\n<li><strong>\u041d\u0430\u0443\u043a\u0430<\/strong>: \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437, \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/li>\n\n\n\n<li><strong>\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440<\/strong>: \u0410\u043d\u0430\u043b\u0438\u0437 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e-\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439, \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u044e\u0434\u0436\u0435\u0442\u0430<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0439<\/h3>\n\n\n\n<p>\u0414\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Pandas \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u0418\u0437\u0443\u0447\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u044b<\/strong>: \u041d\u0430\u0447\u0430\u0442\u044c \u0441 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 Series \u0438 DataFrame<\/li>\n\n\n\n<li><strong>\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e<\/strong>: \u0420\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n\n\n\n<li><strong>\u0418\u0437\u0443\u0447\u0438\u0442\u044c \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443<\/strong>: \u041f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f\u043c\u0438 (NumPy, Matplotlib, Scikit-learn)<\/li>\n\n\n\n<li><strong>\u0421\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438<\/strong>: \u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u0440\u0435\u043b\u0438\u0437\u0430\u0445<\/li>\n\n\n\n<li><strong>\u0423\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435<\/strong>: \u0414\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0443 \u0434\u0440\u0443\u0433\u0438\u0445<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u0412\u0437\u0433\u043b\u044f\u0434 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u0435<\/h3>\n\n\n\n<p>Pandas \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u044f\u0441\u044c \u043a \u043c\u0435\u043d\u044f\u044e\u0449\u0438\u043c\u0441\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/strong>: \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Apache Arrow \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432<\/li>\n\n\n\n<li><strong>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/strong>: \u041d\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447<\/li>\n\n\n\n<li><strong>\u0423\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/strong>: \u0411\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u044b\u0435 API \u0438 \u043b\u0443\u0447\u0448\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/li>\n\n\n\n<li><strong>\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c<\/strong>: \u041b\u0443\u0447\u0448\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u0417\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438<\/h3>\n\n\n\n<p>Pandas \u2014 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043e \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0432\u043b\u0430\u0434\u0435\u0432 \u0435\u0451 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043c\u043e\u0449\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 \u043b\u044e\u0431\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u041a\u043b\u044e\u0447 \u043a \u0443\u0441\u043f\u0435\u0445\u0443 \u2014 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0438 \u0441\u0442\u0440\u0435\u043c\u043b\u0435\u043d\u0438\u0435 \u043a \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.<\/p>\n\n\n\n<p>\u041f\u043e\u043c\u043d\u0438\u0442\u0435: \u0434\u0430\u043d\u043d\u044b\u0435 \u2014 \u044d\u0442\u043e \u043d\u0435 \u0446\u0435\u043b\u044c, \u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u043b\u0443\u0447\u0448\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. Pandas \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0441\u044b\u0440\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0446\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u0438\u043b\u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n\n\n\n<p>\u041d\u0430\u0447\u043d\u0438\u0442\u0435 \u0441 \u043c\u0430\u043b\u043e\u0433\u043e, \u0438\u0437\u0443\u0447\u0430\u0439\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0439\u0442\u0435\u0441\u044c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u2014 \u0438 \u0432\u0441\u043a\u043e\u0440\u0435 Pandas \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u0430\u0448\u0438\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u043c \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u043e\u043c \u0432 \u043c\u0438\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u0423\u0434\u0430\u0447\u0438 \u0432 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435: \u041f\u043e\u0447\u0435\u043c\u0443 Pandas \u2014 \u044d\u0442\u043e \u0440\u0435\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u043c\u0438\u0440\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0430\u043b\u0438 \u043d\u043e\u0432\u043e\u0439 \u043d\u0435\u0444\u0442\u044c\u044e. \u041a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442\u044b \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0451 \u0446\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0430\u0439\u0442\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0412 \u044d\u0442\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Pandas \u0434\u043b\u044f Python \u0441\u0442\u0430\u043b\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u043f\u0440\u043e\u0440\u044b\u0432\u043e\u043c, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u043c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"Pandas","jetpack_seo_html_title":"Pandas","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6],"tags":[],"class_list":["post-2070","post","type-post","status-publish","format-standard","hentry","category-6"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=\/wp\/v2\/posts\/2070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2070"}],"version-history":[{"count":1,"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=\/wp\/v2\/posts\/2070\/revisions"}],"predecessor-version":[{"id":2071,"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=\/wp\/v2\/posts\/2070\/revisions\/2071"}],"wp:attachment":[{"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gerdlezhev.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}