{"id":302918,"date":"2020-05-02T21:00:14","date_gmt":"2020-05-02T21:00:14","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=302918"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=302918","title":{"rendered":"\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u044e\u044c\u0442\u043e\u0440\u0438\u0430\u043b \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 python"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/500162\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wd\/xv\/ft\/wdxvftc1pifrlchwt7ddj8dxtos.png\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442 \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d\u043e\u043c. \u042d\u0442\u043e\u0442 \u0432\u0438\u0434 \u0441\u043f\u043e\u0440\u0442\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0435\u043d \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0430\u0445 \u043c\u0438\u0440\u0430, \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u0421\u0428\u0410, \u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0438 \u0438 \u0415\u0432\u0440\u043e\u043f\u0435. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0438 \u0441\u0442\u0440\u0430\u043d\u0430\u0445 \u0421\u041d\u0413. \u0420\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u0432\u043e\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439, \u043d\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u0432. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043b\u0430\u0432\u0430\u043d\u0438\u044f \u0432 \u0431\u0430\u0441\u0441\u0435\u0439\u043d\u0435, \u043a\u0430\u0442\u0430\u043d\u0438\u044f \u043d\u0430 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0435 \u0438 \u043f\u0440\u043e\u0431\u0435\u0436\u0435\u043a \u043f\u043e \u0443\u0442\u0440\u0430\u043c, \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u043a \u043d\u0438\u043c, \u0434\u0430\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0447\u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u043c. \u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0441\u0440\u0435\u0434\u0438 \u0432\u0430\u0448\u0438\u0445 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u043e\u0434\u0438\u043d \u201c\u0436\u0435\u043b\u0435\u0437\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u201d \u0438\u043b\u0438 \u0442\u043e\u0442, \u043a\u0442\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0438\u043c \u0441\u0442\u0430\u0442\u044c. \u041c\u0430\u0441\u0441\u043e\u0432\u043e\u0441\u0442\u044c, \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0439, \u0442\u0440\u0438 \u0432\u0438\u0434\u0430 \u0441\u043f\u043e\u0440\u0442\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u2013 \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043a \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u0430\u0436\u0434\u044b\u0439 \u0433\u043e\u0434 \u0432 \u043c\u0438\u0440\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0442\u0435\u043d \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0442\u0435\u043d \u0442\u044b\u0441\u044f\u0447 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445. \u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0441\u0438\u043b\u0430\u043c\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0443 \u0441\u0435\u0431\u044f. \u041d\u043e \u0434\u043b\u044f \u0441\u043f\u043e\u0440\u0442\u0441\u043c\u0435\u043d\u043e\u0432 \u0438\u0437 \u0420\u043e\u0441\u0441\u0438\u0438 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0440\u0430\u043d \u0421\u041d\u0413, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <a href=\"http:\/\/tristats.ru\">tristats.ru<\/a> \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u2013 \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u043f\u043e\u0438\u0441\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u043a\u0430\u043a \u0441\u0432\u043e\u0438\u0445, \u0442\u0430\u043a \u0438 \u0441\u0432\u043e\u0438\u0445 \u0434\u0440\u0443\u0437\u0435\u0439 \u0438 \u0441\u043e\u043f\u0435\u0440\u043d\u0438\u043a\u043e\u0432, \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0441\u0432\u043e\u0438\u0445 \u043a\u0443\u043c\u0438\u0440\u043e\u0432. \u041d\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0434\u0430\u043b\u043e \u0435\u0449\u0435 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u0438\u0432\u0430\u043d\u044b \u043d\u0430 \u0442\u0440\u0438\u043b\u0430\u0439\u0444\u0435: <a href=\"https:\/\/www.trilife.ru\/reports\/big-data-o-chyem-ty-nam-rasskazhesh\/\">\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c<\/a>. <\/p>\n<p>  \u042d\u0442\u043e \u0431\u044b\u043b \u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043b\u0438\u0448\u044c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u043d\u0430\u0447\u0430\u043b \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <i>python<\/i>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0442\u043e \u0438 \u0434\u0435\u043b\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u043b\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043d\u044e\u0430\u043d\u0441\u044b, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430. \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e \u0441\u043a\u0440\u0430\u043f\u043f\u0438\u043d\u0433, \u043f\u0430\u0440\u0441\u0438\u043d\u0433, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0434\u0430\u0436\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f.<br \/>  <a name=\"habracut\"><\/a> <br \/>  \u041e\u0431\u044a\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0430\u0437\u0431\u0438\u043b \u0432\u0441\u0435 \u043d\u0430 \u043f\u044f\u0442\u044c \u0447\u0430\u0441\u0442\u0435\u0439, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438 \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u043e\u0442\u043a\u0443\u0434\u0430 \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0440\u044b\u0432\u0430. <\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0434\u0432\u0438\u043d\u0443\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435, \u043b\u0443\u0447\u0448\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043c\u043e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u0437\u0434\u0435\u0441\u044c \u043f\u043e \u0441\u0443\u0442\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043a\u0443\u0445\u043d\u044f \u043f\u043e \u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e. \u042d\u0442\u043e \u0437\u0430\u0439\u043c\u0435\u0442 10-15 \u043c\u0438\u043d\u0443\u0442. <\/p>\n<p>  \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438? \u0422\u043e\u0433\u0434\u0430 \u043f\u043e\u0435\u0445\u0430\u043b\u0438!<\/p>\n<h2>\u0427\u0430\u0441\u0442\u044c 1. \u0421\u043a\u0440\u0430\u043f\u043f\u0438\u043d\u0433 \u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433<\/h2>\n<p>  \u0414\u0430\u043d\u043e: \u0421\u0430\u0439\u0442 <a href=\"http:\/\/tristats.ru\">tristats.ru<\/a>. \u041d\u0430 \u043d\u0435\u043c \u0434\u0432\u0430 \u0432\u0438\u0434\u0430 \u0442\u0430\u0431\u043b\u0438\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442. \u042d\u0442\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0432\u043e\u0434\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0432\u0441\u0435\u0445 \u0433\u043e\u043d\u043e\u043a \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vp\/m5\/do\/vpm5dopzyltw9iwcwdddcff2osw.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yf\/ez\/ve\/yfezve61_ds1wsaiguh5tjpwd2m.png\"\/><\/p>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0435\u0439 \u043d\u043e\u043c\u0435\u0440 \u043e\u0434\u0438\u043d \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0445 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044f \u0431\u044b\u043b \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043b\u043e\u0445\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u0432\u0435\u0431 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438 \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435 \u0437\u043d\u0430\u043b \u0441\u0440\u0430\u0437\u0443 \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041d\u0430\u0447\u0430\u043b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0437\u043d\u0430\u043b \u2013 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043f\u0440\u0430\u0432\u0443\u044e \u043a\u043d\u043e\u043f\u043a\u0443 \u043c\u044b\u0448\u0438 \u0438\u043b\u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u0443 <i>F12<\/i>. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/43\/wc\/ex\/43wcexjx3j9qfvjla_dubcsjgl0.png\"\/><\/p>\n<p>  \u041c\u0435\u043d\u044e \u0432 Chrome \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0432\u0430 \u043f\u0443\u043d\u043a\u0442\u0430 <i>\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043a\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/i> \u0438 <i>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u0434<\/i>. \u041d\u0435 \u0441\u0430\u043c\u043e\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u043d\u0438 \u0434\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u0422\u043e\u0442, \u0447\u0442\u043e <i>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u0434<\/i>, \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0435\u0441\u0442\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 <i>F12<\/i> \u2014 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 <i>html<\/i>-\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u043f\u043e\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vv\/ow\/wb\/vvowwbmi5fdawtjbocfjo5zztm4.png\"\/><\/p>\n<p>  \u0412 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c <i>\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043a\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/i> \u0432\u044b\u0434\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u0422\u043e\u0436\u0435 <i>html<\/i>, \u043d\u043e \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u043c \u043d\u0435\u0442, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 JS, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0445 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u044e\u0442. \u041d\u0443 \u043b\u0430\u0434\u043d\u043e. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/o4\/k7\/d5\/o4k7d5k8zuu66hp43vegbix9hoc.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e python \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u0434 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432 \u0432\u0438\u0434\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u041f\u0440\u043e\u0431\u0443\u044e \u0442\u0430\u043a: <\/p>\n<pre><code class=\"python\">import requests  r = requests.get(url='http:\/\/tristats.ru\/') print(r.content) <\/code><\/pre>\n<p>  \u0418 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u2026 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434. \u041d\u043e \u043c\u043d\u0435 \u0442\u043e \u043d\u0443\u0436\u0435\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u041f\u043e\u0438\u0437\u0443\u0447\u0430\u0432, \u043f\u043e\u0438\u0441\u043a\u0430\u0432 \u0438 \u043f\u043e\u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0432, \u044f \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u2014 <i><a href=\"https:\/\/pypi.org\/project\/selenium\/\">selenium<\/a><\/i>. \u0415\u0433\u043e \u044f \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b. \u0410 \u0442\u0430\u043a\u0436\u0435 <i><a href=\"https:\/\/chromedriver.chromium.org\/\">ChromeDriver<\/a><\/i> \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 <i>Google Chrome<\/i>. \u0414\u0430\u043b\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"python\">from selenium import webdriver from selenium.webdriver.chrome.service import Service  service = Service(r'C:\\ChromeDriver\\chromedriver.exe') service.start() driver = webdriver.Remote(service.service_url) driver.get('http:\/\/www.tristats.ru\/') print(driver.page_source) driver.quit() <\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043e\u043a\u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432 \u043d\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 url. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c <i>html<\/i> \u043a\u043e\u0434 \u0443\u0436\u0435 \u0441 \u0432\u043e\u0436\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041d\u043e \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u0437\u0430\u0433\u0432\u043e\u0437\u0434\u043a\u0430. \u0412 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e 100 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0430 \u0432\u0441\u0435\u0433\u043e \u0433\u043e\u043d\u043e\u043a \u043f\u043e\u0447\u0442\u0438 2000. \u041a\u0430\u043a \u0436\u0435 \u0442\u0430\u043a? \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043f\u0435\u0440\u0432\u044b\u0435 100 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0434\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0438\u0437\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 100, \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0421\u0442\u0430\u043b\u043e \u0431\u044b\u0442\u044c, \u043d\u0430\u0434\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"python\">driver.execute_script(&quot;window.scrollTo(0, document.body.scrollHeight);&quot;) <\/code><\/pre>\n<p>  \u0418 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c, \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043b\u0438 \u043a\u043e\u0434 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043b\u0438 \u043d\u0435\u0442. \u0415\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f, \u0434\u043b\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 10, \u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f. \u041c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430\u043c\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u0447\u0442\u043e\u0431\u044b \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0443\u0441\u043f\u0435\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f. (\u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0435 \u0443\u0441\u043f\u0435\u0435\u0442, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0430\u0441 \u2013 \u0435\u0449\u0435 \u0434\u0435\u0432\u044f\u0442\u044c \u0441\u0435\u043a\u0443\u043d\u0434). <\/p>\n<p>  \u0410 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"python\">from selenium import webdriver from selenium.webdriver.chrome.service import Service import time  service = Service(r'C:\\ChromeDriver\\chromedriver.exe') service.start() driver = webdriver.Remote(service.service_url) driver.get('http:\/\/www.tristats.ru\/') prev_html = '' scroll_attempt = 0  while scroll_attempt &lt; 10:     driver.execute_script(&quot;window.scrollTo(0, document.body.scrollHeight);&quot;)     time.sleep(1)      if prev_html == driver.page_source:         scroll_attempt += 1     else:         prev_html = driver.page_source         scroll_attempt = 0   with open(r'D:\\tri\\summary.txt', 'w') as f:     f.write(prev_html)  driver.quit() <\/code><\/pre>\n<p>  \u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c <i>html <\/i>\u0444\u0430\u0439\u043b \u0441\u043e \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0432\u0441\u0435\u0445 \u0433\u043e\u043d\u043e\u043a. \u041d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <i>lxml<\/i>.<\/p>\n<pre><code class=\"python\">from lxml import html <\/code><\/pre>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0427\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0438, \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u043c <i>html <\/i>\u0444\u0430\u0439\u043b \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/b2\/j6\/_8\/b2j6_8isg6smzxbgkojrppfwif4.png\"\/><\/p>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <i>\u00abtr ng-repeat=\u2019r in racesData\u2019 class=\u2019ng-scope\u2019\u00bb<\/i> \u0438\u043b\u0438 \u043a\u0430\u043a\u043e\u0439 \u2013 \u0442\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0438 \u0432 \u043a\u0430\u043a\u0438\u0445 \u0442\u0435\u0433\u0430\u0445. <\/p>\n<pre><code class=\"python\">with open(r'D:\\tri\\summary.txt', 'r') as f:     sum_html = f.read()  tree = html.fromstring(sum_html) rows = tree.findall(&quot;.\/\/*[@ng-repeat='r in racesData']&quot;) <\/code><\/pre>\n<p>  \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u0432\u043e\u0434\u0438\u043c <i>pandas dataframe<\/i> \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u044d\u0442\u043e\u0442 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c. <\/p>\n<pre><code class=\"python\">import pandas as pd  rs = pd.DataFrame(columns=['date','name','link','males','females','rus','total'], index=range(len(rows))) #rs \u2013 races summary <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u0433\u0434\u0435 \u0441\u043f\u0440\u044f\u0442\u0430\u043d \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <i>html <\/i>\u043a\u043e\u0434 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0448\u0438\u0445 <i>rows<\/i> \u0432 \u0442\u043e\u043c \u0436\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435.<\/p>\n<pre><code class=\"xml\">&lt;tr ng-repeat=&quot;r in racesData&quot; class=&quot;ng-scope&quot;&gt;   &lt;td class=&quot;ng-binding&quot;&gt;2015-04-26&lt;\/td&gt;     &lt;td&gt;       &lt;img src=&quot;\/Images\/flags\/24\/USA.png&quot; class=&quot;flag&quot;&gt;       &lt;a href=&quot;\/rus\/result\/ironman\/texas\/half\/2015&quot; target=&quot;_self&quot; class=&quot;ng-binding&quot;&gt;Ironman Texas 70.3 2015&lt;\/a&gt;     &lt;\/td&gt;     &lt;td&gt;       &lt;a href=&quot;\/rus\/result\/ironman\/texas\/half\/2015?sex=F&quot; target=&quot;_self&quot; class=&quot;ng-binding&quot;&gt;605&lt;\/a&gt;       &lt;i class=&quot;fas fa-venus fa-lg&quot; style=&quot;color:Pink&quot;&gt;&lt;\/i&gt;       \/       &lt;a href=&quot;\/rus\/result\/ironman\/texas\/half\/2015?sex=M&quot; target=&quot;_self&quot; class=&quot;ng-binding&quot;&gt;1539&lt;\/a&gt;       &lt;i class=&quot;fas fa-mars fa-lg&quot; style=&quot;color:LightBlue&quot;&gt;&lt;\/i&gt;     &lt;\/td&gt;     &lt;td class=&quot;ng-binding&quot;&gt;       &lt;img src=&quot;\/Images\/flags\/24\/rus.png&quot; class=&quot;flag&quot;&gt;       &lt;!-- ngIf: r.CountryCount == 0 --&gt;       &lt;!-- ngIf: r.CountryCount &gt; 0 --&gt;&lt;a ng-if=&quot;r.CountryCount &gt; 0&quot; href=&quot;\/rus\/result\/ironman\/texas\/half\/2015?country=rus&quot; target=&quot;_self&quot; class=&quot;ng-binding ng-scope&quot;&gt;2&lt;\/a&gt;       &lt;!-- end ngIf: r.CountryCount &gt; 0 --&gt;       \/ 2144   &lt;\/td&gt; &lt;\/tr&gt; <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0437\u0430\u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0438\u0442\u044c \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u043f\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c, \u0438\u0445 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e. <\/p>\n<pre><code class=\"python\">for i in range(len(rows)):     rs.loc[i,'date'] = rows[i].getchildren()[0].text.strip()     rs.loc[i,'name'] = rows[i].getchildren()[1].getchildren()[1].text.strip()     rs.loc[i,'link'] = rows[i].getchildren()[1].getchildren()[1].attrib['href'].strip()     rs.loc[i,'males'] = rows[i].getchildren()[2].getchildren()[2].text.strip()     rs.loc[i,'females'] = rows[i].getchildren()[2].getchildren()[0].text.strip()     rs.loc[i,'rus'] = rows[i].getchildren()[3].getchildren()[3].text.strip()     rs.loc[i,'total'] = rows[i].getchildren()[3].text_content().split('\/')[1].strip() <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0432 \u0438\u0442\u043e\u0433\u0435:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>date<\/th>\n<th>event<\/th>\n<th>link<\/th>\n<th>males<\/th>\n<th>females<\/th>\n<th>rus<\/th>\n<th>total<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>2020-07-02<\/td>\n<td>Ironman Dubai Duathlon 70.3 2020<\/td>\n<td>\/rus\/result\/ironman\/dubai-duathlon\/half\/2020<\/td>\n<td>835<\/td>\n<td>215<\/td>\n<td>65<\/td>\n<td>1050<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2020-02-07<\/td>\n<td>Ironman Dubai 70.3 2020<\/td>\n<td>\/rus\/result\/ironman\/dubai\/half\/2020<\/td>\n<td>638<\/td>\n<td>132<\/td>\n<td>55<\/td>\n<td>770<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>2020-01-29<\/td>\n<td>Israman Half 2020<\/td>\n<td>\/rus\/result\/israman\/israman\/half\/2020<\/td>\n<td>670<\/td>\n<td>126<\/td>\n<td>4<\/td>\n<td>796<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>2019-12-08<\/td>\n<td>Ironman Indian Wells La Quinta 70.3 2019<\/td>\n<td>\/rus\/result\/ironman\/indian-wells-la-quinta\/hal...<\/td>\n<td>1590<\/td>\n<td>593<\/td>\n<td>6<\/td>\n<td>2183<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>2019-12-07<\/td>\n<td>Ironman Taupo 70.3 2019<\/td>\n<td>\/rus\/result\/ironman\/taupo\/half\/2019<\/td>\n<td>767<\/td>\n<td>420<\/td>\n<td>3<\/td>\n<td>1187<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>1917<\/td>\n<td>1994-07-02<\/td>\n<td>ITU European Championship Eichstatt Olympic 1994<\/td>\n<td>\/rus\/result\/itu\/european-championship-eichstat...<\/td>\n<td>61<\/td>\n<td>0<\/td>\n<td>2<\/td>\n<td>61<\/td>\n<\/tr>\n<tr>\n<td>1918<\/td>\n<td>1993-09-04<\/td>\n<td>Challenge Almere-Amsterdam Long 1993<\/td>\n<td>\/rus\/result\/challenge\/almere-amsterdam\/full\/1993<\/td>\n<td>795<\/td>\n<td>32<\/td>\n<td>1<\/td>\n<td>827<\/td>\n<\/tr>\n<tr>\n<td>1919<\/td>\n<td>1993-07-04<\/td>\n<td>ITU European Cup Echternach Olympic 1993<\/td>\n<td>\/rus\/result\/itu\/european-cup-echternach\/olympi...<\/td>\n<td>60<\/td>\n<td>0<\/td>\n<td>2<\/td>\n<td>60<\/td>\n<\/tr>\n<tr>\n<td>1920<\/td>\n<td>1992-09-12<\/td>\n<td>ITU World Championship Huntsville Olympic 1992<\/td>\n<td>\/rus\/result\/itu\/world-championship-huntsville\/...<\/td>\n<td>317<\/td>\n<td>0<\/td>\n<td>3<\/td>\n<td>317<\/td>\n<\/tr>\n<tr>\n<td>1921<\/td>\n<td>1990-09-15<\/td>\n<td>ITU World Championship Orlando Olympic 1990<\/td>\n<td>\/rus\/result\/itu\/world-championship-orlando\/oly...<\/td>\n<td>286<\/td>\n<td>0<\/td>\n<td>5<\/td>\n<td>28<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><br \/>  \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u044d\u0442\u043e\u0442 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u0432 \u0444\u0430\u0439\u043b. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e <i>pickle<\/i>, \u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c <i>csv<\/i>, \u0438\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0435.<\/p>\n<pre><code class=\"python\">import pickle as pkl  with open(r'D:\\tri\\summary.pkl', 'wb') as f:     pkl.dump(df,f) <\/code><\/pre>\n<p>  \u041d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0439 \u0442\u0438\u043f. \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0437\u0436\u0435. \u0421\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u043d\u0430\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0443\u0436\u043d\u043e, \u044d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0438. \u0418\u0445 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u043a\u0440\u0430\u043f\u043f\u0438\u043d\u0433\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0432\u0441\u0435\u0445 \u0433\u043e\u043d\u043e\u043a. \u0414\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u043f\u043e \u043e\u0431\u0440\u0430\u0437\u0443 \u0438 \u043f\u043e\u0434\u043e\u0431\u0438\u044e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0412 \u0446\u0438\u043a\u043b\u0435 \u043f\u043e \u0432\u0441\u0435\u043c \u0433\u043e\u043d\u043a\u0430\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435, \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u0412 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e \u043e\u0431\u0449\u0435\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0432 \u0433\u043e\u043d\u043a\u0435 \u2013 <i>total<\/i>, \u0431\u0443\u0434\u0435\u043c \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0434\u043e \u043a\u0430\u043a\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0441\u043a\u0440\u043e\u043b\u043b\u0438\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u044f\u043c\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u043a\u0440\u0430\u043f\u043f\u0438\u043d\u0433\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c total. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e, \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0434\u043e\u0441\u043a\u0440\u043e\u043b\u043b\u0438\u043b\u0438 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0433\u043e\u043d\u043a\u0435. \u0422\u0430\u043a \u0436\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u2013 60 \u0441\u0435\u043a. \u0415\u043b\u0438 \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043d\u0435 \u0434\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0434\u043e <i>total<\/i>, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0433\u043e\u043d\u043a\u0435. \u041a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0432 \u0444\u0430\u0439\u043b. \u0411\u0443\u0434\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432\u0441\u0435\u0445 \u0433\u043e\u043d\u043e\u043a \u0432 \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435, \u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0433\u043e\u043d\u043e\u043a, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>event<\/i> \u0432 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u0438\u043c\u0435\u043d, \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0433\u043e\u043d\u043a\u0438 \u0438\u043c\u0435\u043b\u0438 \u0440\u0430\u0437\u043d\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u044d\u0442\u043e:<\/p>\n<pre><code class=\"python\">df[df.duplicated(subset = 'event', keep=False)] <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>date<\/th>\n<th>event<\/th>\n<th>link<\/th>\n<th>males<\/th>\n<th>females<\/th>\n<th>rus<\/th>\n<th>total<\/th>\n<\/tr>\n<tr>\n<td>450<\/td>\n<td>2018-07-15<\/td>\n<td>A1 \u0428\u043b\u0438\u0441\u0441\u0435\u043b\u044c\u0431\u0443\u0440\u0433 Sprint 2018<\/td>\n<td>\/rus\/result\/a1\/\u0448\u043b\u0438cc\u0435\u043b\u044c\u0431\u0443\u0440\u0433\/sprint\/2018-07-15<\/td>\n<td>43<\/td>\n<td>15<\/td>\n<td>47<\/td>\n<td>58<\/td>\n<\/tr>\n<tr>\n<td>483<\/td>\n<td>2018-06-23<\/td>\n<td>A1 \u0428\u043b\u0438\u0441\u0441\u0435\u043b\u044c\u0431\u0443\u0440\u0433 Sprint 2018<\/td>\n<td>\/rus\/result\/a1\/\u0448\u043b\u0438cc\u0435\u043b\u044c\u0431\u0443\u0440\u0433\/sprint\/2018-06-23<\/td>\n<td>61<\/td>\n<td>15<\/td>\n<td>76<\/td>\n<td>76<\/td>\n<\/tr>\n<tr>\n<td>670<\/td>\n<td>2017-07-30<\/td>\n<td>3Grom \u041a\u043b\u0435\u043d\u043e\u0432\u043e Olympic 2017<\/td>\n<td>\/rus\/result\/3grom\/\u043a\u043b\u0435\u043d\u043e\u0432\u043e\/olympic\/2017-07-30<\/td>\n<td>249<\/td>\n<td>44<\/td>\n<td>293<\/td>\n<td>293<\/td>\n<\/tr>\n<tr>\n<td>752<\/td>\n<td>2017-06-11<\/td>\n<td>3Grom \u041a\u043b\u0435\u043d\u043e\u0432\u043e Olympic 2017<\/td>\n<td>\/rus\/result\/3grom\/\u043a\u043b\u0435\u043d\u043e\u0432\u043e\/olympic\/2017-06-11<\/td>\n<td>251<\/td>\n<td>28<\/td>\n<td>279<\/td>\n<td>279<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0427\u0442\u043e \u0436, \u0432 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0435\u0441\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u044f, \u043f\u0440\u0438\u0447\u0435\u043c, \u0434\u0430\u0442\u044b, \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 (<i>males, females, rus, total<\/i>), \u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u0440\u0430\u0437\u043d\u044b\u0435. \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b, \u0437\u0434\u0435\u0441\u044c \u0438\u0445 \u043d\u0435\u043c\u043d\u043e\u0433\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/a8\/v7\/n8\/a8v7n8qoxbzobftxcm0knnvks6m.png\"\/><\/p>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>date<\/th>\n<th>event<\/th>\n<th>link<\/th>\n<th>males<\/th>\n<th>females<\/th>\n<th>rus<\/th>\n<th>total<\/th>\n<\/tr>\n<tr>\n<td>450<\/td>\n<td>2018-07-15<\/td>\n<td>A1 \u0428\u043b\u0438\u0441\u0441\u0435\u043b\u044c\u0431\u0443\u0440\u0433 Sprint <u>7<\/u> 2018<\/td>\n<td>\/rus\/result\/a1\/\u0448\u043b\u0438cc\u0435\u043b\u044c\u0431\u0443\u0440\u0433\/sprint\/2018-07-15<\/td>\n<td>43<\/td>\n<td>15<\/td>\n<td>47<\/td>\n<td>58<\/td>\n<\/tr>\n<tr>\n<td>483<\/td>\n<td>2018-06-23<\/td>\n<td>A1 \u0428\u043b\u0438\u0441\u0441\u0435\u043b\u044c\u0431\u0443\u0440\u0433 Sprint <u>6<\/u> 2018<\/td>\n<td>\/rus\/result\/a1\/\u0448\u043b\u0438cc\u0435\u043b\u044c\u0431\u0443\u0440\u0433\/sprint\/2018-06-23<\/td>\n<td>61<\/td>\n<td>15<\/td>\n<td>76<\/td>\n<td>76<\/td>\n<\/tr>\n<tr>\n<td>670<\/td>\n<td>2017-07-30<\/td>\n<td>3Grom \u041a\u043b\u0435\u043d\u043e\u0432\u043e Olympic <u>7<\/u> 2017<\/td>\n<td>\/rus\/result\/3grom\/\u043a\u043b\u0435\u043d\u043e\u0432\u043e\/olympic\/2017-07-30<\/td>\n<td>249<\/td>\n<td>44<\/td>\n<td>293<\/td>\n<td>293<\/td>\n<\/tr>\n<tr>\n<td>752<\/td>\n<td>2017-06-11<\/td>\n<td>3Grom \u041a\u043b\u0435\u043d\u043e\u0432\u043e Olympic <u>6<\/u> 2017<\/td>\n<td>\/rus\/result\/3grom\/\u043a\u043b\u0435\u043d\u043e\u0432\u043e\/olympic\/2017-06-11<\/td>\n<td>251<\/td>\n<td>28<\/td>\n<td>279<\/td>\n<td>27<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0430\u0439\u043d\u0438\u043d\u0433-\u0446\u0438\u043a\u043b:<\/p>\n<pre><code class=\"python\">service.start() driver = webdriver.Remote(service.service_url) timeout = 60  for index, row in df.iterrows():     try:         driver.get('http:\/\/www.tristats.ru' + row['link'])              start = time.time()          while True:             driver.execute_script(&quot;window.scrollTo(0, document.body.scrollHeight);&quot;)             time.sleep(1)             race_html = driver.page_source             tree = html.fromstring(race_html)             race_rows = tree.findall(&quot;.\/\/*[@ng-repeat='r in resultsData']&quot;)              if len(race_rows) == int(row['total']):                 break             if time.time() - start &gt; timeout:                 print('timeout')                 break          with open(os.path.join(r'D:\\tri\\races', row['event'] +  '.txt'), 'w') as f:             f.write(race_html)      except:         traceback.print_exc()      time.sleep(1)      driver.quit() <\/code><\/pre>\n<p>  \u042d\u0442\u043e \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0438 \u044d\u0442\u043e\u0442 \u0442\u044f\u0436\u0435\u043b\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435, \u043e\u0434\u0438\u043d \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0444\u0430\u0439\u043b\u0438\u043a\u0438 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0447\u0443\u0432\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0433\u043e \u0432\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0412 \u043c\u0438\u043d\u0443\u0442\u0443 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e \u0442\u0440\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e. \u041e\u0441\u0442\u0430\u0432\u0438\u043b \u043a\u0440\u0443\u0442\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u043e\u0447\u044c. \u041d\u0430 \u0432\u0441\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u043e\u043a\u043e\u043b\u043e 10 \u0447\u0430\u0441\u043e\u0432. \u041a \u0443\u0442\u0440\u0443 \u0431\u044b\u043b\u0430 \u0437\u0430\u043a\u0430\u0447\u0430\u043d\u0430 \u0431o\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432. \u041a\u0430\u043a \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0441\u0435\u0442\u044c\u044e, \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0441\u0431\u043e\u0439. \u0411\u044b\u0441\u0442\u0440\u043e \u0434\u043e\u043a\u0430\u0447\u0430\u043b \u0438\u0445 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u043e\u0439. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/un\/wi\/el\/unwielrqjzt6u6otf8sbwwjbq8q.png\"\/><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043c\u044b \u0438\u043c\u0435\u0435\u043c 1 922 \u0444\u0430\u0439\u043b\u0430 \u043e\u0431\u0449\u0438\u043c \u043e\u0431\u044a\u0435\u043c\u043e\u043c \u043f\u043e\u0447\u0442\u0438 3 GB. \u041a\u0440\u0443\u0442\u043e! \u041d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u043e\u0447\u0442\u0438 300 \u0433\u043e\u043d\u043e\u043a \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u043c. \u0412 \u0447\u0435\u043c \u0436\u0435 \u0434\u0435\u043b\u043e? \u0412\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 total \u0438\u0437 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u0433\u043e\u043d\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438, \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c. \u042d\u0442\u043e \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0432 \u0447\u0435\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f. \u0422\u043e \u043b\u0438 \u044d\u0442\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435 \u0444\u0438\u043d\u0438\u0448\u0438\u0440\u0443\u044e\u0442, \u0442\u043e \u043b\u0438 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0431\u0430\u0433 \u0432 \u0431\u0430\u0437\u0435. \u0412 \u043e\u0431\u0449\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043e \u043d\u0435\u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0442\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f 100 \u0438\u043b\u0438 0, \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b. \u0422\u0430\u043a\u0438\u0445 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u043e\u0441\u0435\u043c\u044c. \u0417\u0430\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0438\u0445 \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u043e\u0434 \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u043c. \u041a\u0441\u0442\u0430\u0442\u0438, \u0432 \u0434\u0432\u0443\u0445 \u0438\u0437 \u043d\u0438\u0445 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e 100 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. <\/p>\n<p>  \u041d\u0443 \u0447\u0442\u043e \u0436, \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443 \u043d\u0430\u0441. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0443. \u041e\u043f\u044f\u0442\u044c \u0436\u0435 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0442\u044c \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043e\u043d\u043a\u0435, \u0447\u0438\u0442\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432 <i>pandas DataFrame<\/i>. \u042d\u0442\u0438 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u0432 <i>dict<\/i>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u043b\u044e\u0447\u0430\u043c\u0438 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0433\u043e\u043d\u043e\u043a \u2013 \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <i>event<\/i> \u0438\u0437 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u043b\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 <i>html <\/i>\u043a\u043e\u0434\u043e\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0433\u043e\u043d\u043e\u043a, \u043e\u043d\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442. <\/p>\n<pre><code class=\"python\">rd = {} #rd \u2013 race details  for e in rs['event']:     place = []     ... sex = [], name=..., country, group, place_in_group, swim, t1, bike, t2, run     result = []      with open(os.path.join(r'D:\\tri\\races', e + '.txt'), 'r')         race_html = f.read()      tree = html.fromstring(race_html)     rows = tree.findall(&quot;.\/\/*[@ng-repeat='r in resultsData']&quot;)      for j in range(len(rows)):         row = rows[j]         parts = row.text_content().split('\\n')         parts = [r.strip() for r in parts if r.strip() != '']         place.append(parts[0])          if len([a for a in row.findall('.\/\/i')]) &gt; 0:             sex.append([a for a in row.findall('.\/\/i')][0].attrib['ng-if'][10:-1])         else:             sex.append('')          name.append(parts[1])          if len(parts) &gt; 10:             country.append(parts[2].strip())                      k=0         else:             country.append('')             k=1          group.append(parts[3-k])         ... place_in_group.append(...), swim.append ..., t1, bike, t2, run         result.append(parts[10-k])      race = pd.DataFrame()     race['place'] = place     ... race['sex'] = sex, race['name'] = ..., 'country', 'group', 'place_in_group', 'swim', ' t1', 'bike', 't2', 'run'     race['result'] = result      rd[e] = race  with open(r'D:\\tri\\details.pkl', 'wb') as f:     pkl.dump(rd,f) <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>place in group<\/th>\n<th>swim<\/th>\n<th>t1<\/th>\n<th>bike<\/th>\n<th>t2<\/th>\n<th>run<\/th>\n<th>result<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>M<\/td>\n<td>Reed, Tim<\/td>\n<td>AUS<\/td>\n<td>MPRO<\/td>\n<td>1<\/td>\n<td>24:34<\/td>\n<td>1:07<\/td>\n<td>2:13:46<\/td>\n<td>1:49<\/td>\n<td>1:23:17<\/td>\n<td>4:04:33<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<td>Van Berkel, Tim<\/td>\n<td>AUS<\/td>\n<td>MPRO<\/td>\n<td>2<\/td>\n<td>24:34<\/td>\n<td>1:05<\/td>\n<td>2:13:47<\/td>\n<td>1:53<\/td>\n<td>1:27:17<\/td>\n<td>4:08:36<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>3<\/td>\n<td>M<\/td>\n<td>Baldwin, Nicholas<\/td>\n<td>SEY<\/td>\n<td>MPRO<\/td>\n<td>3<\/td>\n<td>26:31<\/td>\n<td>0:59<\/td>\n<td>2:14:06<\/td>\n<td>1:54<\/td>\n<td>1:25:36<\/td>\n<td>4:09:06<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>4<\/td>\n<td>M<\/td>\n<td>Polizzi, Alexander<\/td>\n<td>AUS<\/td>\n<td>MPRO<\/td>\n<td>4<\/td>\n<td>23:21<\/td>\n<td>1:12<\/td>\n<td>2:14:53<\/td>\n<td>1:54<\/td>\n<td>1:31:16<\/td>\n<td>4:12:36<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>5<\/td>\n<td>M<\/td>\n<td>Chang, Chia-Hao<\/td>\n<td>TWN<\/td>\n<td>M18-24<\/td>\n<td>1<\/td>\n<td>25:18<\/td>\n<td>1:34<\/td>\n<td>2:23:38<\/td>\n<td>2:13<\/td>\n<td>1:29:01<\/td>\n<td>4:21:44<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>6<\/td>\n<td>M<\/td>\n<td>Rondy, Guillaume<\/td>\n<td>FRA<\/td>\n<td>M35-39<\/td>\n<td>1<\/td>\n<td>27:51<\/td>\n<td>1:26<\/td>\n<td>2:21:53<\/td>\n<td>2:29<\/td>\n<td>1:35:19<\/td>\n<td>4:28:58<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>7<\/td>\n<td>F<\/td>\n<td>Steffen, Caroline<\/td>\n<td>SUI<\/td>\n<td>FPRO<\/td>\n<td>1<\/td>\n<td>26:52<\/td>\n<td>1:01<\/td>\n<td>2:24:54<\/td>\n<td>2:10<\/td>\n<td>1:34:17<\/td>\n<td>4:29:14<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>8<\/td>\n<td>M<\/td>\n<td>Betten, Sam<\/td>\n<td>AUS<\/td>\n<td>MPRO<\/td>\n<td>5<\/td>\n<td>23:30<\/td>\n<td>1:26<\/td>\n<td>2:18:24<\/td>\n<td>1:57<\/td>\n<td>1:45:07<\/td>\n<td>4:30:24<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>9<\/td>\n<td>M<\/td>\n<td>Gallot, Simon<\/td>\n<td>FRA<\/td>\n<td>M30-34<\/td>\n<td>1<\/td>\n<td>27:50<\/td>\n<td>1:33<\/td>\n<td>2:20:15<\/td>\n<td>2:13<\/td>\n<td>1:45:22<\/td>\n<td>4:37:13<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>524<\/td>\n<td>525<\/td>\n<td>M<\/td>\n<td>Santos, Alfredo<\/td>\n<td>PHI<\/td>\n<td>M65-69<\/td>\n<td>2<\/td>\n<td>50:42<\/td>\n<td>4:23<\/td>\n<td>3:52:10<\/td>\n<td>10:32<\/td>\n<td>3:36:11<\/td>\n<td>8:33:58<\/td>\n<\/tr>\n<tr>\n<td>525<\/td>\n<td>526<\/td>\n<td>F<\/td>\n<td>Escober, Eula<\/td>\n<td>PHI<\/td>\n<td>F18-24<\/td>\n<td>5<\/td>\n<td>47:07<\/td>\n<td>3:50<\/td>\n<td>4:43:44<\/td>\n<td>3:41<\/td>\n<td>2:59:45<\/td>\n<td>8:38:07<\/td>\n<\/tr>\n<tr>\n<td>526<\/td>\n<td>527<\/td>\n<td>M<\/td>\n<td>Belen, Virgilio Jr.<\/td>\n<td>PHI<\/td>\n<td>M45-49<\/td>\n<td>76<\/td>\n<td>47:05<\/td>\n<td>5:49<\/td>\n<td>3:48:18<\/td>\n<td>11:21<\/td>\n<td>3:46:06<\/td>\n<td>8:38:39<\/td>\n<\/tr>\n<tr>\n<td>527<\/td>\n<td>528<\/td>\n<td>M<\/td>\n<td>Kunimoto, Kilhak<\/td>\n<td>GUM<\/td>\n<td>M70-74<\/td>\n<td>2<\/td>\n<td>40:32<\/td>\n<td>2:50<\/td>\n<td>3:53:37<\/td>\n<td>6:45<\/td>\n<td>4:01:36<\/td>\n<td>8:45:20<\/td>\n<\/tr>\n<tr>\n<td>528<\/td>\n<td>529<\/td>\n<td>M<\/td>\n<td>Sumicad, Siegfred<\/td>\n<td>PHI<\/td>\n<td>M50-54<\/td>\n<td>54<\/td>\n<td>59:10<\/td>\n<td>4:38<\/td>\n<td>4:11:55<\/td>\n<td>6:35<\/td>\n<td>3:23:45<\/td>\n<td>8:46:03<\/td>\n<\/tr>\n<tr>\n<td>529<\/td>\n<td>530<\/td>\n<td>M<\/td>\n<td>Gomez, Paul<\/td>\n<td>PHI<\/td>\n<td>M45-49<\/td>\n<td>77<\/td>\n<td>50:02<\/td>\n<td>6:29<\/td>\n<td>4:07:58<\/td>\n<td>7:24<\/td>\n<td>3:41:41<\/td>\n<td>8:53:34<\/td>\n<\/tr>\n<tr>\n<td>530<\/td>\n<td>531<\/td>\n<td>M<\/td>\n<td>Ramos, John Raymund<\/td>\n<td>PHI<\/td>\n<td>M25-29<\/td>\n<td>26<\/td>\n<td>43:44<\/td>\n<td>3:04<\/td>\n<td>4:21:13<\/td>\n<td>5:56<\/td>\n<td>3:45:10<\/td>\n<td>8:59:07<\/td>\n<\/tr>\n<tr>\n<td>531<\/td>\n<td>532<\/td>\n<td>F<\/td>\n<td>De Guzman, Clouie Anne<\/td>\n<td>PHI<\/td>\n<td>F30-34<\/td>\n<td>9<\/td>\n<td>52:29<\/td>\n<td>3:16<\/td>\n<td>4:03:02<\/td>\n<td>7:01<\/td>\n<td>3:56:39<\/td>\n<td>9:02:27<\/td>\n<\/tr>\n<tr>\n<td>532<\/td>\n<td>533<\/td>\n<td>F<\/td>\n<td>Samson, Maria Dolores<\/td>\n<td>PHI<\/td>\n<td>F45-49<\/td>\n<td>17<\/td>\n<td>48:56<\/td>\n<td>4:21<\/td>\n<td>4:16:34<\/td>\n<td>6:26<\/td>\n<td>3:47:06<\/td>\n<td>9:03:23<\/td>\n<\/tr>\n<tr>\n<td>533<\/td>\n<td>534<\/td>\n<td>M<\/td>\n<td>Salazar, Richard<\/td>\n<td>PHI<\/td>\n<td>M40-44<\/td>\n<td>107<\/td>\n<td>42:19<\/td>\n<td>4:02<\/td>\n<td>4:30:36<\/td>\n<td>6:39<\/td>\n<td>3:39:51<\/td>\n<td>9:03:27<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041f\u043e\u043c\u0438\u043c\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, <i>html <\/i>\u0444\u0430\u0439\u043b \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043e\u043d\u043a\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0435\u0449\u0435 \u0438 \u0434\u0430\u0442\u0443, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438 \u043c\u0435\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u0430\u0442\u0430 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0430 \u0432\u043e\u0442 \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u043d\u0435\u0442. \u0421\u0447\u0438\u0442\u0430\u0435\u043c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 <i>html <\/i>\u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u043e\u0432\u0443\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0432 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. <\/p>\n<pre><code class=\"python\">for index, row in rs.iterrows():     e = row['event']            with open(os.path.join(r'D:\\tri\\races', e + '.txt'), 'r') as f:         race_html = f.read()      tree = html.fromstring(race_html)     header_elem = [tb for tb in tree.findall('.\/\/tbody') if tb.getchildren()[0].getchildren()[0].text == '\u0414\u0430\u0442\u0430'][0]     location = header_elem.getchildren()[1].getchildren()[1].text.strip()     rs.loc[index, 'loc'] = location <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>event<\/th>\n<th>date<\/th>\n<th><u>loc<\/u><\/th>\n<th>male<\/th>\n<th>female<\/th>\n<th>rus<\/th>\n<th>total<\/th>\n<th>link<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>Ironman Dubai Duathlon 70.3 2020<\/td>\n<td>2020-07-02<\/td>\n<td><u>Dubai, United Arab Emirates<\/u><\/td>\n<td>835<\/td>\n<td>215<\/td>\n<td>65<\/td>\n<td>1050<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Ironman Dubai 70.3 2020<\/td>\n<td>2020-02-07<\/td>\n<td><u>Dubai, United Arab Emirates<\/u><\/td>\n<td>638<\/td>\n<td>132<\/td>\n<td>55<\/td>\n<td>770<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Israman Half 2020<\/td>\n<td>2020-01-29<\/td>\n<td><u>Israel, Eilat<\/u><\/td>\n<td>670<\/td>\n<td>126<\/td>\n<td>4<\/td>\n<td>796<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Ironman Indian Wells La Quinta 70.3 2019<\/td>\n<td>2019-12-08<\/td>\n<td><u>Indian Wells\/La Quinta, California, USA<\/u><\/td>\n<td>1590<\/td>\n<td>593<\/td>\n<td>6<\/td>\n<td>2183<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Ironman Taupo 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td><u>New Zealand<\/u><\/td>\n<td>767<\/td>\n<td>420<\/td>\n<td>3<\/td>\n<td>1187<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Ironman Bahrain 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td><u>Manama, Bahrain<\/u><\/td>\n<td>858<\/td>\n<td>214<\/td>\n<td>38<\/td>\n<td>1072<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Ironman Western Australia 2019<\/td>\n<td>2019-12-01<\/td>\n<td><u>Busselton, Western Australia<\/u><\/td>\n<td>940<\/td>\n<td>229<\/td>\n<td>1<\/td>\n<td>1169<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Ironman Mar del Plata 2019<\/td>\n<td>2019-12-01<\/td>\n<td><u>Mar del Plata, Argentina<\/u><\/td>\n<td>506<\/td>\n<td>66<\/td>\n<td>3<\/td>\n<td>572<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Ironman Cozumel 2019<\/td>\n<td>2019-11-24<\/td>\n<td><u>Cozumel, Mexico<\/u><\/td>\n<td>1158<\/td>\n<td>395<\/td>\n<td>12<\/td>\n<td>1553<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>Ironman Arizona 2019<\/td>\n<td>2019-11-24<\/td>\n<td><u>Tempe, Arizona, USA<\/u><\/td>\n<td>1697<\/td>\n<td>633<\/td>\n<td>3<\/td>\n<td>2330<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>Ironman Xiamen 70.3 2019<\/td>\n<td>2019-11-10<\/td>\n<td><u>Xiamen, China<\/u><\/td>\n<td>897<\/td>\n<td>170<\/td>\n<td>14<\/td>\n<td>1067<\/td>\n<td>...<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c. \u0412 \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b.<\/p>\n<pre><code class=\"python\">with open(r'D:\\tri\\summary1.pkl', 'wb') as f:     pkl.dump(df,f) <\/code><\/pre>\n<p>  <\/p>\n<h2>\u0427\u0430\u0441\u0442\u044c 2. \u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>  \u0418\u0442\u0430\u043a, \u043c\u044b \u0441\u043a\u0430\u0447\u0430\u043b\u0438 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438 \u0438\u0445 \u0432 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u044b. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u044e\u0442 \u0442\u0438\u043f <i>str<\/i>. \u042d\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0438 \u043a \u0434\u0430\u0442\u0435, \u0438 \u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c, \u0438 \u043a \u043b\u043e\u043a\u0430\u0446\u0438\u0438, \u0438 \u043a\u043e \u0432\u0441\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0442\u0438\u043f\u0430\u043c. <\/p>\n<p>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441\u043e \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. <br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>event<\/th>\n<th>date<\/th>\n<th><u>loc<\/u><\/th>\n<th>male<\/th>\n<th>female<\/th>\n<th>rus<\/th>\n<th>total<\/th>\n<th>link<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>Ironman Dubai Duathlon 70.3 2020<\/td>\n<td>2020-07-02<\/td>\n<td><u>Dubai, United Arab Emirates<\/u><\/td>\n<td>835<\/td>\n<td>215<\/td>\n<td>65<\/td>\n<td>1050<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Ironman Dubai 70.3 2020<\/td>\n<td>2020-02-07<\/td>\n<td><u>Dubai, United Arab Emirates<\/u><\/td>\n<td>638<\/td>\n<td>132<\/td>\n<td>55<\/td>\n<td>770<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Israman Half 2020<\/td>\n<td>2020-01-29<\/td>\n<td><u>Israel, Eilat<\/u><\/td>\n<td>670<\/td>\n<td>126<\/td>\n<td>4<\/td>\n<td>796<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Ironman Indian Wells La Quinta 70.3 2019<\/td>\n<td>2019-12-08<\/td>\n<td><u>Indian Wells\/La Quinta, California, USA<\/u><\/td>\n<td>1590<\/td>\n<td>593<\/td>\n<td>6<\/td>\n<td>2183<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Ironman Taupo 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td><u>New Zealand<\/u><\/td>\n<td>767<\/td>\n<td>420<\/td>\n<td>3<\/td>\n<td>1187<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Ironman Bahrain 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td><u>Manama, Bahrain<\/u><\/td>\n<td>858<\/td>\n<td>214<\/td>\n<td>38<\/td>\n<td>1072<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Ironman Western Australia 2019<\/td>\n<td>2019-12-01<\/td>\n<td><u>Busselton, Western Australia<\/u><\/td>\n<td>940<\/td>\n<td>229<\/td>\n<td>1<\/td>\n<td>1169<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Ironman Mar del Plata 2019<\/td>\n<td>2019-12-01<\/td>\n<td><u>Mar del Plata, Argentina<\/u><\/td>\n<td>506<\/td>\n<td>66<\/td>\n<td>3<\/td>\n<td>572<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Ironman Cozumel 2019<\/td>\n<td>2019-11-24<\/td>\n<td><u>Cozumel, Mexico<\/u><\/td>\n<td>1158<\/td>\n<td>395<\/td>\n<td>12<\/td>\n<td>1553<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>Ironman Arizona 2019<\/td>\n<td>2019-11-24<\/td>\n<td><u>Tempe, Arizona, USA<\/u><\/td>\n<td>1697<\/td>\n<td>633<\/td>\n<td>3<\/td>\n<td>2330<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>Ironman Xiamen 70.3 2019<\/td>\n<td>2019-11-10<\/td>\n<td><u>Xiamen, China<\/u><\/td>\n<td>897<\/td>\n<td>170<\/td>\n<td>14<\/td>\n<td>1067<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td><u>...<\/u><\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>  <\/p>\n<h3>\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f<\/h3>\n<p>  <i>event<\/i>, <i>loc<\/i> \u0438 <i>link<\/i> \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043a\u0430\u043a \u0435\u0441\u0442\u044c. <i>date<\/i> \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0432 <i>pandas datetime<\/i> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: <\/p>\n<pre><code class=\"python\">rs['date'] = pd.to_datetime(rs['date']) <\/code><\/pre>\n<p>  \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043c \u043a \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0442\u0438\u043f\u0443:<\/p>\n<pre><code class=\"python\">cols = ['males', 'females', 'rus', 'total'] rs[cols] = rs[cols].astype(int) <\/code><\/pre>\n<p>  \u0412\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0433\u043b\u0430\u0434\u043a\u043e, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e. \u0417\u043d\u0430\u0447\u0438\u0442 \u0432\u0441\u0435 OK \u2014 c\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u0441\u044f:<\/p>\n<pre><code class=\"python\">with open(r'D:\\tri\\summary2.pkl', 'wb') as f:     pkl.dump(rs, f) <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u044b \u0433\u043e\u043d\u043e\u043a. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0441\u0435 \u0433\u043e\u043d\u043a\u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043e\u043c, \u0430 \u043d\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u0439, \u0441\u043e\u0431\u0435\u0440\u0435\u043c \u0438\u0445 \u0432 \u043e\u0434\u0438\u043d \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c <i>ar<\/i> (\u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 <i>all records<\/i>) \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <i>concat<\/i>.<\/p>\n<pre><code class=\"python\">ar = pd.concat(rd)  <\/code><\/pre>\n<p>  <i>ar<\/i> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 1 416 365 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c place \u0438 place in group \u0432 \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. <\/p>\n<pre><code class=\"python\">ar[['place', 'place in group']] = ar[['place', 'place in group']].astype(int)) <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u0411\u0443\u0434\u0435\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0432 \u0442\u0438\u043f\u0443 <i>Timedelta<\/i> \u0438\u0437 <i>pandas<\/i>. \u041d\u043e \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435. \u041c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0430\u0441\u0430 \u0438\u0434\u0443\u0442 \u0431\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u0447\u0430\u0441\u043a\u0430.<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>place in group<\/th>\n<th><u>swim<\/u><\/th>\n<th><u>t1<\/u><\/th>\n<th>bike<\/th>\n<th><u>t2<\/u><\/th>\n<th>run<\/th>\n<th>result<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>M<\/td>\n<td>Dejan Patrcevic<\/td>\n<td>CRO<\/td>\n<td>M40-44<\/td>\n<td>1<\/td>\n<td><u>29:03<\/u><\/td>\n<td><u>2:50<\/u><\/td>\n<td>2:09:17<\/td>\n<td><u>1:37<\/u><\/td>\n<td>1:22:06<\/td>\n<td>4:04:51<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<td>Lukas Krpec<\/td>\n<td>CZE<\/td>\n<td>M35-39<\/td>\n<td>1<\/td>\n<td><u>29:00<\/u><\/td>\n<td><u>2:40<\/u><\/td>\n<td>2:07:01<\/td>\n<td><u>1:48<\/u><\/td>\n<td>1:25:48<\/td>\n<td>4:06:15<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>3<\/td>\n<td>M<\/td>\n<td>Marin Koceic<\/td>\n<td>CRO<\/td>\n<td>M40-44<\/td>\n<td>2<\/td>\n<td><u>27:34<\/u><\/td>\n<td><u>2:09<\/u><\/td>\n<td>2:12:13<\/td>\n<td><u>1:30<\/u><\/td>\n<td>1:27:19<\/td>\n<td>4:10:44<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c. <\/p>\n<pre><code class=\"python\">for col in ['swim', 't1', 'bike', 't2', 'run', 'result']:     strlen = ar[col].str.len()     ar.loc[strlen==5, col] = '0:' + ar.loc[strlen==5, col]     ar.loc[strlen==4, col] = '0:0' + ar.loc[strlen==4, col] <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u0430, \u0432\u0441\u0435 \u0435\u0449\u0435 \u043e\u0441\u0442\u0430\u0432\u0430\u044f\u0441\u044c \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438, \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>place in group<\/th>\n<th><u>swim<\/u><\/th>\n<th><u>t1<\/u><\/th>\n<th>bike<\/th>\n<th><u>t2<\/u><\/th>\n<th>run<\/th>\n<th>result<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>M<\/td>\n<td>Dejan Patrcevic<\/td>\n<td>CRO<\/td>\n<td>M40-44<\/td>\n<td>1<\/td>\n<td><u>0:29:03<\/u><\/td>\n<td><u>0:02:50<\/u><\/td>\n<td>2:09:17<\/td>\n<td><u>0:01:37<\/u><\/td>\n<td>1:22:06<\/td>\n<td>4:04:51<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<td>Lukas Krpec<\/td>\n<td>CZE<\/td>\n<td>M35-39<\/td>\n<td>1<\/td>\n<td><u>0:29:00<\/u><\/td>\n<td><u>0:02:40<\/u><\/td>\n<td>2:07:01<\/td>\n<td><u>0:01:48<\/u><\/td>\n<td>1:25:48<\/td>\n<td>4:06:15<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>3<\/td>\n<td>M<\/td>\n<td>Marin Koceic<\/td>\n<td>CRO<\/td>\n<td>M40-44<\/td>\n<td>2<\/td>\n<td><u>0:27:34<\/u><\/td>\n<td><u>0:02:09<\/u><\/td>\n<td>2:12:13<\/td>\n<td><u>0:01:30<\/u><\/td>\n<td>1:27:19<\/td>\n<td>4:10:44<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0432 <i>Timedelta<\/i>:<\/p>\n<pre><code class=\"python\">for col in ['swim', 't1', 'bike', 't2', 'run', 'result']:     ar[col] = pd.to_timedelta(ar[col]) <\/code><\/pre>\n<p>  <\/p>\n<h3>\u041f\u043e\u043b<\/h3>\n<p>  \u0418\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0447\u0442\u043e \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>sex<\/i> \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <i>M<\/i> \u0438 <i>F<\/i>:<\/p>\n<pre><code class=\"python\">ar['sex'].unique()  <\/code><\/pre>\n<p>  <code><b>Out:<\/b> ['M', 'F', '']<br \/>  <\/code><br \/>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0442\u0430\u043c \u0435\u0449\u0435 \u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432:<\/p>\n<pre><code class=\"python\">len(ar[ar['sex'] == ''])  <\/code><\/pre>\n<p>  <code><b>Out:<\/b> 2538<br \/>  <\/code><br \/>  \u041d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u2014 \u0445\u043e\u0440\u043e\u0448\u043e. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0435\u0449\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0410 \u043f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0443 <i>sex<\/i> \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a. \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0431\u043e\u043b\u0435\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u043c \u0438 \u0440\u0438\u0441\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u043c. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u0435\u0435\u043c\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c <i>ar<\/i> \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u043e\u0432 <i>rd<\/i>:<\/p>\n<pre><code class=\"python\">for event in ar.index.get_level_values(0).unique():     rd[event] = ar.loc[event]  with open(r'D:\\tri\\details1.pkl', 'wb') as f:     pkl.dump(rd,f) <\/code><\/pre>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u0437\u0430 \u0441\u0447\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0444\u0430\u0439\u043b\u043e\u0432 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0438\u0441\u044c \u0441 367 KB \u0434\u043e 295 KB \u0434\u043b\u044f \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0441 251 MB \u0434\u043e 168 MB \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0433\u043e\u043d\u043e\u043a. <\/p>\n<h3>\u041a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u044b<\/h3>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0442\u0440\u0430\u043d\u0443.<\/p>\n<pre><code class=\"python\">ar['country'].unique() <\/code><\/pre>\n<p>  <code><b>Out:<\/b> ['CRO', 'CZE', 'SLO', 'SRB', 'BUL', 'SVK', 'SWE', 'BIH', 'POL', 'MK', 'ROU', 'GRE', 'FRA', 'HUN', 'NOR', 'AUT', 'MNE', 'GBR', 'RUS', 'UAE', 'USA', 'GER', 'URU', 'CRC', 'ITA', 'DEN', 'TUR', 'SUI', 'MEX', 'BLR', 'EST', 'NED', 'AUS', 'BGI', 'BEL', 'ESP', 'POR', 'UKR', 'CAN', 'IRL', 'JPN', 'HKG', 'JEY', 'SGP', 'BRA', 'QAT', 'LUX', 'RSA', 'NZL', 'LAT', 'PHI', 'KSA', 'SEY', 'MAS', 'OMA', 'ARG', 'ECU', 'THA', 'JOR', 'BRN', 'CIV', 'FIN', 'IRN', 'BER', 'LBA', 'KUW', 'LTU', 'SRI', 'HON', 'INA', 'LBN', 'PAN', 'EGY', 'MLT', 'WAL', 'ISL', 'CYP', 'DOM', 'IND', 'VIE', 'MRI', 'AZE', 'MLD', 'LIE', 'VEN', 'ALG', 'SYR', 'MAR', 'KZK', 'PER', 'COL', 'IRQ', 'PAK', 'CZK', 'KAZ', 'CHN', 'NEP', 'ISR', 'MKD', 'FRO', 'BAN', 'ARU', 'CPV', 'ALB', 'BIZ', 'TPE', 'KGZ', 'BNN', 'CUB', 'SNG', 'VTN', 'THI', 'PRG', 'KOR', 'RE', 'TW', 'VN', 'MOL', 'FRE', 'AND', 'MDV', 'GUA', 'MON', 'ARM', 'F.I.TRI.', 'BAHREIN', 'SUECIA', 'REPUBLICA CHECA', 'BRASIL', 'CHI', 'MDA', 'TUN', 'NDL', 'Danish(Dane)', 'Welsh', 'Austrian', 'Unknown', 'AFG', 'Argentinean', 'Pitcairn', 'South African', 'Greenland', 'ESTADOS UNIDOS', 'LUXEMBURGO', 'SUDAFRICA', 'NUEVA ZELANDA', 'RUMANIA', 'PM', 'BAH', 'LTV', 'ESA', 'LAB', 'GIB', 'GUT', 'SAR', 'ita', 'aut', 'ger', 'esp', 'gbr', 'hun', 'den', 'usa', 'sui', 'slo', 'cze', 'svk', 'fra', 'fin', 'isr', 'irn', 'irl', 'bel', 'ned', 'sco', 'pol', 'SMR', 'mex', 'STEEL T BG', 'KINO MANA', 'IVB', 'TCH', 'SCO', 'KEN', 'BAS', 'ZIM', 'Joe', 'PUR', 'SWZ', 'Mark', 'WLS', 'MYA', 'BOT', 'REU', 'NAM', 'NCL', 'BOL', 'GGY', 'ISV', 'TWN', 'GUM', 'FIJ', 'COK', 'NGR', 'IRI', 'GAB', 'ANT', 'GEO', 'COG', 'sue', 'SUD', 'BAR', 'CAY', 'BO', 'VE', 'AX', 'MD', 'PAR', 'UM', 'SEN', 'NIG', 'RWA', 'YEM', 'PLE', 'GHA', 'ITU', 'UZB', 'MGL', 'MAC', 'DMA', 'TAH', 'TTO', 'AHO', 'JAM', 'SKN', 'GRN', 'PRK', 'NFK', 'SOL', 'Sandy', 'SAM', 'PNG', 'SGS', 'Suchy, Jorg', 'SOG', 'GEQ', 'BVT', 'DJI', 'CHA', 'ANG', 'YUG', 'IOT', 'HAI', 'SJM', 'CUW', 'BHU', 'ERI', 'FLK', 'HMD', 'GUF', 'ESH', 'sandy', 'UMI', 'selsmark, 'Alise', 'Eddie', '31\/3, Colin', 'CC', '\u0418\u043d\u0434\u0438\u044f', '\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f', '\u0410\u0440\u043c\u0435\u043d\u0438\u044f', '\u0411\u043e\u043b\u0433\u0430\u0440\u0438\u044f', '\u0421\u0435\u0440\u0431\u0438\u044f', '\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c', '\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f', '\u0424\u0440\u0430\u043d\u0446\u0438\u044f', '\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441', '\u041a\u043e\u0441\u0442\u0430-\u0420\u0438\u043a\u0430', '\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d', 'GRL', 'UGA', 'VAT', 'ETH', 'ASA', 'PYF', 'ATA', 'ALA', 'MTQ', 'ZZ', 'CXR', 'AIA', 'TJK', 'GUY', 'KR', 'PF', 'BN', 'MO', 'LA', 'CAM', 'NCA', 'ZAM', 'MAD', 'TOG', 'VIR', 'ATF', 'VAN', 'SLE', 'GLP', 'SCG', 'LAO', 'IMN', 'BUR', 'IR', 'SY', 'CMR', 'GBS', 'SUR', 'MOZ', 'BLM', 'MSR', 'CAF', 'BEN', 'COD', 'CCK', 'TUV', 'TGA', 'GI', 'XKX', 'NRU', 'NC', 'LBR', 'TAN', 'VIN', 'SSD', 'GP', 'PS', 'IM', 'JE', '', 'MLI', 'FSM', 'LCA', 'GMB', 'MHL', 'NH', 'FL', 'CT', 'UT', 'AQ', 'Korea', 'Taiwan', 'NewCaledonia', 'Czech Republic', 'PLW', 'BRU', 'RUN', 'NIU', 'KIR', 'SOM', 'TKM', 'SPM', 'BDI', 'COM', 'TCA', 'SHN', 'DO2', 'DCF', 'PCN', 'MNP', 'MYT', 'SXM', 'MAF', 'GUI', 'AN', 'Slovak republic', 'Channel Islands', 'Reunion', 'Wales', 'Scotland', 'ica', 'WLF', 'D', 'F', 'I', 'B', 'L', 'E', 'A', 'S', 'N', 'H', 'R', 'NU', 'BES', 'Bavaria', 'TLS', 'J', 'TKL', 'Tirol&quot;', 'P', '?????', 'EU', 'ES-IB', 'ES-CT', '\u041a\u0413\u042b', 'SOO', 'LZE', '\u041c\u043e\u0433\u0438\u043b\u0451\u0432', '\u0413\u043e\u043c\u0435\u043b\u044c', '\u041c\u0438\u043d\u0441\u043a', '\u0421\u0430\u043c\u0430\u0440\u0430', '\u0413\u0440\u043e\u0434\u043d\u043e', '\u041c\u043e\u0441\u043a\u0432\u0430']<br \/>  <\/code><br \/>  412 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. <\/p>\n<p>  \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u0442\u0440\u0430\u043d\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0440\u0435\u0445\u0437\u043d\u0430\u0447\u043d\u044b\u043c \u0431\u0443\u043a\u0432\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435. \u041d\u043e \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/ISO_3166-1\">ISO 3166<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u0430\u043d, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0434\u0430\u0436\u0435 \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0436\u0435 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0440\u0435\u0445\u0437\u043d\u0430\u0447\u043d\u044b\u0435 \u0438 \u0434\u0432\u0443\u0437\u043d\u0430\u0447\u043d\u044b\u0435 \u043a\u043e\u0434\u044b. \u0414\u043b\u044f <i>python<\/i> \u043e\u0434\u043d\u0443 \u0438\u0437 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 <i><a href=\"https:\/\/pypi.org\/project\/pycountry\/\">pycountry<\/a><\/i>. \u0412\u043e\u0442 \u043a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<pre><code class=\"python\">import pycountry as pyco  pyco.countries.get(alpha_3 = 'RUS') <\/code><\/pre>\n<p>  <code><b>Out:<\/b> Country(alpha_2='RU', alpha_3='RUS', name='Russian Federation', numeric='643')<br \/>  <\/code><br \/>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0432\u0441\u0435 \u0442\u0440\u0435\u0445\u0437\u043d\u0430\u0447\u043d\u044b\u0435 \u043a\u043e\u0434\u044b, \u043f\u0440\u0438\u0432\u0435\u0434\u044f \u043a \u0432\u0435\u0440\u0445\u043d\u0435\u043c\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u044e\u0442 \u043e\u0442\u043a\u043b\u0438\u043a \u0432 <i>countries.get(\u2026)<\/i> \u0438 <i>historic_countries.get(\u2026)<\/i>:<\/p>\n<pre><code class=\"python\">valid_a3 = [c for c in ar['country'].unique() if pyco.countries.get(alpha_3 = c.upper()) != None or pyco.historic_countries.get(alpha_3 = c.upper()) != None]) <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u0445 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c 190 \u0438\u0437 412. \u0422\u043e \u0435\u0441\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b. <br \/>  \u0414\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 222 (\u0438\u0445 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c <i>tofix<\/i>) \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f <i>fix<\/i>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0440\u0435\u0445\u0437\u043d\u0430\u0447\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 ISO. <\/p>\n<pre><code class=\"python\">tofix = list(set(ar['country'].unique()) - set(valid_a3)) <\/code><\/pre>\n<p>  \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0434\u0432\u0443\u0437\u043d\u0430\u0447\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <i>pycountry.countries.get(alpha_2 = \u2026)<\/i>, \u043f\u0440\u0438\u0432\u0435\u0434\u044f \u043a \u0432\u0435\u0440\u0445\u043d\u0435\u043c\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443:<\/p>\n<pre><code class=\"python\">for icc in tofix: #icc -invalid country code     if pyco.countries.get(alpha_2 = icc.upper()) != None:         fix[icc] = pyco.countries.get(alpha_2 = icc.upper()).alpha_3     else:         if pyco.historic_countries.get(alpha_2 = icc.upper()) != None:             fix[icc] = pyco.historic_countries.get(alpha_2 = icc.upper()).alpha_3 <\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043f\u043e\u043b\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 <i>pycountry.countries.get(name = \u2026), pycountry.countries.get(common_name = \u2026)<\/i>, \u043f\u0440\u0438\u0432\u0435\u0434\u044f \u0438\u0445 \u043a \u0444\u043e\u0440\u043c\u0435 <i>str.title()<\/i>:<\/p>\n<pre><code class=\"python\">for icc in tofix:     if pyco.countries.get(common_name = icc.title()) != None:         fix[icc] = pyco.countries.get(common_name = icc.title()).alpha_3     else:         if pyco.countries.get(name = icc.title()) != None:             fix[icc] = pyco.countries.get(name = icc.title()).alpha_3         else:             if pyco.historic_countries.get(name = icc.title()) != None:                 fix[icc] = pyco.historic_countries.get(name = icc.title()).alpha_3 <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u043d\u0435\u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u043e 190. \u0412\u0441\u0435 \u0435\u0449\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e: <br \/>  <code>['URU', '', 'PAR', 'SUECIA', 'KUW', 'South African', '\u0413\u043e\u043c\u0435\u043b\u044c', 'Austrian', 'ISV', 'H', 'SCO', 'ES-CT', \u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441', 'GUI', 'BOT', 'SEY', 'BIZ', 'LAB', 'PUR', '\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c', 'Scotland', '\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d', '\u041c\u0438\u043d\u0441\u043a', 'TCH', 'TGA', 'UT', 'BAH', 'GEQ', 'NEP', 'TAH', 'ica', 'FRE', 'E', 'TOG', 'MYA', '\u0411\u043e\u043b\u0433\u0430\u0440\u0438\u044f', 'Danish (Dane)', 'SAM', 'TPE', 'MON', 'ger', 'Unknown', 'sui', 'R', 'SUI', 'A', 'GRN', 'KZK', 'Wales', '\u041c\u043e\u0441\u043a\u0432\u0430', 'GBS', 'ESA', 'Bavaria', 'Czech Republic', '31\/3, Colin', 'SOL', 'SKN', '\u0424\u0440\u0430\u043d\u0446\u0438\u044f', 'MGL', 'XKX', 'WLS', 'MOL', 'FIJ', 'CAY', 'ES-IB', 'BER', 'PLE', 'MRI', 'B', 'KSA', '\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f', '\u0413\u0440\u043e\u0434\u043d\u043e', 'LAT', 'GRE', 'ARU', '\u041a\u0413\u042b', 'THI', 'NGR', 'MAD', 'SOG', 'MLD', '?????', 'AHO', 'sco', 'UAE', 'RUMANIA', 'CRO', 'RSA', 'NUEVA ZELANDA', 'KINO MANA', 'PHI', 'sue', 'Tirol&quot;', 'IRI', 'POR', 'CZK', 'SAR', 'D', 'BRASIL', 'DCF', 'HAI', 'ned', 'N', 'BAHREIN', 'VTN', 'EU', 'CAM', 'Mark', 'BUL', 'Welsh', 'VIN', 'HON', 'ESTADOS UNIDOS', 'I', 'GUA', 'OMA', 'CRC', 'PRG', 'NIG', 'BHU', 'Joe', 'GER', 'RUN', 'ALG', '\u0421\u0435\u0440\u0431\u0438\u044f', 'Channel Islands', 'Reunion', 'REPUBLICA CHECA', 'slo', 'ANG', 'NewCaledonia', 'GUT', 'VIE', 'ASA', 'BAR', 'SRI', 'L', '\u041c\u043e\u0433\u0438\u043b\u0451\u0432', 'J', 'BAS', 'LUXEMBURGO', 'S', 'CHI', 'SNG', 'BNN', 'den', 'F.I.TRI.', 'STEEL T BG', 'NCA', 'Slovak republic', 'MAS', 'LZE', '\u041a\u043e\u0441\u0442\u0430-\u0420\u0438\u043a\u0430', 'F', 'BRU', '\u0410\u0440\u043c\u0435\u043d\u0438\u044f', 'LBA', 'NDL', 'DEN', 'IVB', 'BAN', 'Sandy', 'ZAM', 'sandy', 'Korea', 'SOO', 'BGI', '\u0418\u043d\u0434\u0438\u044f', 'LTV', 'selsmark, Alise', 'TAN', 'NED', '\u0421\u0430\u043c\u0430\u0440\u0430', 'Suchy, Jorg', 'SLO', 'SUDAFRICA', 'ZIM', 'Eddie', 'INA', '\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f', 'SUD', 'VAN', 'FL', 'P', 'ITU', 'ZZ', 'Argentinean', 'CHA', 'DO2', 'WAL']<br \/>  <\/code><br \/>  \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043c\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u0445\u0437\u043d\u0430\u0447\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 ISO. \u0427\u0442\u043e \u0436\u0435 \u0442\u043e\u0433\u0434\u0430? \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u2013 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D0%9C%D0%9E%D0%9A\">\u043e\u043b\u0438\u043c\u043f\u0438\u0439\u0441\u043a\u0438\u0439<\/a>. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0435\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0432 pycountry \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043a\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0435. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u043b\u043e\u0441\u044c \u0432 \u0432\u0438\u0434\u0435 <i>csv<\/i> \u0444\u0430\u0439\u043b\u0430 \u043d\u0430 <a href=\"https:\/\/datahub.io\/core\/country-codes\">datahub.io<\/a>. \u041f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0432 <i>pandas DataFrame<\/i> \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <i>cdf<\/i>. <br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>official name<\/th>\n<th>short name<\/th>\n<th>iso2<\/th>\n<th><u>iso3<\/u><\/th>\n<th><u>ioc<\/u><\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>NaN<\/td>\n<td>Taiwan<\/td>\n<td>TW<\/td>\n<td><u>TWN<\/u><\/td>\n<td><u>TPE<\/u><\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Afghanistan<\/td>\n<td>Afghanistan<\/td>\n<td>AF<\/td>\n<td><u>AFG<\/u><\/td>\n<td><u>AFG<\/u><\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Albania<\/td>\n<td>Albania<\/td>\n<td>AL<\/td>\n<td><u>ALB<\/u><\/td>\n<td><u>ALB<\/u><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Algeria<\/td>\n<td>Algeria<\/td>\n<td>DZ<\/td>\n<td><u>DZA<\/u><\/td>\n<td><u>ALG<\/u><\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>American Samoa<\/td>\n<td>American Samoa<\/td>\n<td>AS<\/td>\n<td><u>ASM<\/u><\/td>\n<td><u>ASA<\/u><\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Andorra<\/td>\n<td>Andorra<\/td>\n<td>AD<\/td>\n<td><u>AND<\/u><\/td>\n<td><u>AND<\/u><\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Angola<\/td>\n<td>Angola<\/td>\n<td>AO<\/td>\n<td><u>AGO<\/u><\/td>\n<td><u>ANG<\/u><\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Anguilla<\/td>\n<td>Anguilla<\/td>\n<td>AI<\/td>\n<td><u>AIA<\/u><\/td>\n<td><u>AIA<\/u><\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Antarctica<\/td>\n<td>Antarctica<\/td>\n<td>AQ<\/td>\n<td><u>ATA<\/u><\/td>\n<td><u>NaN<\/u><\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>Antigua and Barbuda<\/td>\n<td>Antigua & Barbuda<\/td>\n<td>AG<\/td>\n<td><u>ATG<\/u><\/td>\n<td><u>ANT<\/u><\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>Argentina<\/td>\n<td>Argentina<\/td>\n<td>AR<\/td>\n<td><u>ARG<\/u><\/td>\n<td><u>ARG<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><i>ioc<\/i> \u2013 Intenational Olympic Committee (IOC) <\/p>\n<pre><code class=\"python\">len(([x for x in tofix if x.upper() in list(cdf['ioc'])])) <\/code><\/pre>\n<p>  <code><b>Out:<\/b> 82<br \/>  <\/code><br \/>  \u0421\u0440\u0435\u0434\u0438 \u0442\u0440\u0435\u0445\u0437\u043d\u0430\u0447\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432 \u0438\u0437 <i>tofix<\/i> \u043d\u0430\u0448\u043b\u043e\u0441\u044c 82 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 IOC. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0438\u0445 \u0432 \u043d\u0430\u0448 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f. <\/p>\n<pre><code class=\"python\">for icc in tofix:     if icc.upper() in list(cdf['ioc']):         ind = cdf[cdf['ioc'] == icc.upper()].index[0]         fix[icc] = cdf.loc[ind, 'iso3'] <\/code><\/pre>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c 108 \u043d\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0418\u0445 \u0434\u043e\u0431\u0438\u0432\u0430\u0435\u043c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u0431\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432 Google. <br \/>  <code>{'BGI': 'BRB', 'WAL': 'GBR', 'MLD': 'MDA', 'KZK': 'KAZ', 'CZK': 'CZE', 'BNN': 'BEN', 'SNG': 'SGP', 'VTN': 'VNM', 'THI': 'THA', 'PRG': 'PRT', 'MOL': 'MDA', 'FRE': 'FRA', 'F.I.TRI.': 'ITA', 'BAHREIN': 'BHR', 'SUECIA': 'SWE', 'REPUBLICA CHECA': 'CZE', 'BRASIL': 'BRA', 'NDL': 'NLD', 'Danish (Dane)': 'DNK', 'Welsh': 'GBR', 'Austrian': 'AUT', 'Argentinean': 'ARG', 'South African': 'ZAF', 'ESTADOS UNIDOS': 'USA', 'LUXEMBURGO': 'LUX', 'SUDAFRICA': 'ZAF', 'NUEVA ZELANDA': 'NZL', 'RUMANIA': 'ROU', 'sco': 'GBR', 'SCO': 'GBR', 'WLS': 'GBR', '\u0418\u043d\u0434\u0438\u044f': 'IND', '\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f': 'IRL', '\u0410\u0440\u043c\u0435\u043d\u0438\u044f': 'ARM', '\u0411\u043e\u043b\u0433\u0430\u0440\u0438\u044f': 'BGR', '\u0421\u0435\u0440\u0431\u0438\u044f': 'SRB', '\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c': 'BLR', '\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f': 'GBR', '\u0424\u0440\u0430\u043d\u0446\u0438\u044f': 'FRA', '\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441': 'HND', '\u041a\u043e\u0441\u0442\u0430-\u0420\u0438\u043a\u0430': 'CRI', '\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d': 'AZE', 'Korea': 'KOR', 'NewCaledonia': 'FRA', 'Czech Republic': 'CZE', 'Slovak republic': 'SVK', 'Channel Islands': 'FRA', 'Reunion': 'FRA', 'Wales': 'GBR', 'Scotland': 'GBR', 'Bavaria': 'DEU', 'Tirol&quot;': 'AUT', '\u041a\u0413\u042b': 'KGZ', '\u041c\u043e\u0433\u0438\u043b\u0451\u0432': 'BLR', '\u0413\u043e\u043c\u0435\u043b\u044c': 'BLR', '\u041c\u0438\u043d\u0441\u043a': 'BLR', '\u0421\u0430\u043c\u0430\u0440\u0430': 'RUS', '\u0413\u0440\u043e\u0434\u043d\u043e': 'BLR', '\u041c\u043e\u0441\u043a\u0432\u0430': 'RUS'}<br \/>  <\/code><br \/>  \u041d\u043e \u0434\u0430\u0436\u0435 \u0440\u0443\u0447\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435 \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e. \u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f 49 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u044d\u0442\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445. <\/p>\n<pre><code class=\"python\">unfixed = [x for x in tofix if x not in fix.keys()] <\/code><\/pre>\n<p>  <code><b>Out:<\/b> ['', 'H', 'ES-CT', 'LAB', 'TCH', 'UT', 'TAH', 'ica', 'E', 'Unknown', 'R', 'A', '31\/3, Colin', 'XKX', 'ES-IB','B','SOG','?????','KINO MANA','sue','SAR','D', 'DCF', 'N', 'EU', 'Mark', 'I', 'Joe', 'RUN', 'GUT', 'L', 'J', 'BAS', 'S', 'STEEL T BG', 'LZE', 'F', 'Sandy', 'DO2', 'sandy', 'SOO', 'LTV', 'selsmark, Alise', 'Suchy, Jorg' 'Eddie', 'FL', 'P', 'ITU', 'ZZ']<br \/>  <\/code><br \/>  \u0423 \u044d\u0442\u0438\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430.<\/p>\n<pre><code class=\"python\">for cc in unfixed:     fix[cc] = '' <\/code><\/pre>\n<p>  \u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043a\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c\u0438, \u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435.<\/p>\n<pre><code class=\"python\">for cc in valid_a3:     if cc.upper() != cc:         fix[cc] = cc.upper() <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u043d\u044b. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0443 <i>country<\/i> \u0432 <i>country raw<\/i>. \u0417\u0430\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>country<\/i> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 ISO.<\/p>\n<pre><code class=\"python\">for cc in fix:     ind = ar[ar['country'] == cc].index     ar.loc[ind,'country'] = fix[cc] <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u0442\u043e\u0440\u0430 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0441\u0442\u0440\u043e\u043a. \u041d\u043e \u043f\u043e \u0441\u043b\u043e\u0432\u0430\u0440\u044e \u0434\u0435\u043b\u0430\u0435\u043c \u0446\u0438\u043a\u043b, \u0430 \u043a\u0430\u043a \u0438\u043d\u0430\u0447\u0435? \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e:<\/p>\n<pre><code class=\"python\">len(ar[ar['country'] != ar['country raw']]) <\/code><\/pre>\n<p>  <code><b>Out:<\/b> 315955<br \/>  <\/code><br \/>  \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u0435\u0435 20% \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430. <\/p>\n<pre><code class=\"python\">ar[ar['country'] != ar['country raw']].sample(10) <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th><u>country<\/u><\/th>\n<th>group<\/th>\n<th>place in group<\/th>\n<th>...<\/th>\n<th><u>country raw<\/u><\/th>\n<\/tr>\n<tr>\n<td>285<\/td>\n<td>286<\/td>\n<td>M<\/td>\n<td>Albaek, Mads Orla<\/td>\n<td><u>DNK<\/u><\/td>\n<td>M30-34<\/td>\n<td>63<\/td>\n<td>...<\/td>\n<td><u>DEN<\/u><\/td>\n<\/tr>\n<tr>\n<td>1288<\/td>\n<td>1289<\/td>\n<td>M<\/td>\n<td>Benthien, Andreas<\/td>\n<td><u>DEU<\/u><\/td>\n<td>M40-44<\/td>\n<td>198<\/td>\n<td>...<\/td>\n<td><u>GER<\/u><\/td>\n<\/tr>\n<tr>\n<td>490<\/td>\n<td>491<\/td>\n<td>M<\/td>\n<td>Lontok, Joselito<\/td>\n<td><u>PHL<\/u><\/td>\n<td>M50-54<\/td>\n<td>18<\/td>\n<td>...<\/td>\n<td><u>PHI<\/u><\/td>\n<\/tr>\n<tr>\n<td>145<\/td>\n<td>146<\/td>\n<td>M<\/td>\n<td>Mathiasen, Keld<\/td>\n<td><u>DNK<\/u><\/td>\n<td>M45-49<\/td>\n<td>16<\/td>\n<td>...<\/td>\n<td><u>DEN<\/u><\/td>\n<\/tr>\n<tr>\n<td>445<\/td>\n<td>446<\/td>\n<td>M<\/td>\n<td>Palm, Francois<\/td>\n<td><u>ZAF<\/u><\/td>\n<td>M25-29<\/td>\n<td>48<\/td>\n<td>...<\/td>\n<td><u>RSA<\/u><\/td>\n<\/tr>\n<tr>\n<td>152<\/td>\n<td>153<\/td>\n<td>M<\/td>\n<td>Muller, Johannes<\/td>\n<td><u>DEU<\/u><\/td>\n<td>M35-39<\/td>\n<td>19<\/td>\n<td>...<\/td>\n<td><u>GER<\/u><\/td>\n<\/tr>\n<tr>\n<td>764<\/td>\n<td>765<\/td>\n<td>F<\/td>\n<td>Woscher Sylvia<\/td>\n<td><u>DEU<\/u><\/td>\n<td>F55-59<\/td>\n<td>8<\/td>\n<td>...<\/td>\n<td><u>GER<\/u><\/td>\n<\/tr>\n<tr>\n<td>2182<\/td>\n<td>2183<\/td>\n<td>M<\/td>\n<td>Kojellis, Holger<\/td>\n<td><u>DEU<\/u><\/td>\n<td>M40-44<\/td>\n<td>258<\/td>\n<td>...<\/td>\n<td><u>GER<\/u><\/td>\n<\/tr>\n<tr>\n<td>1293<\/td>\n<td>1294<\/td>\n<td>M<\/td>\n<td>Zweer, Waldemar<\/td>\n<td><u>DEU<\/u><\/td>\n<td>M25-29<\/td>\n<td>117<\/td>\n<td>...<\/td>\n<td><u>GER<\/u><\/td>\n<\/tr>\n<tr>\n<td>747<\/td>\n<td>748<\/td>\n<td>M<\/td>\n<td>Petersen, Mathias<\/td>\n<td><u>DNK<\/u><\/td>\n<td>M25-29<\/td>\n<td>79<\/td>\n<td>...<\/td>\n<td><u>DE<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>  <\/p>\n<pre><code class=\"python\">len(ar[ar['country'] == '']) <\/code><\/pre>\n<p>  <code><b>Out:<\/b> 3221<br \/>  <\/code><br \/>  \u0422\u0430\u043a\u043e\u0432\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u0435\u0437 \u0441\u0442\u0440\u0430\u043d\u044b \u0438\u043b\u0438 \u0441\u043e \u0441\u0442\u0440\u0430\u043d\u043e\u0439 \u043d\u0435\u0444\u043e\u0440\u043c\u0430\u0442\u0430. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u043e\u0441\u044c \u0441 412 \u0434\u043e 250. \u0412\u043e\u0442 \u043e\u043d\u0438:<br \/>  <code>['', 'ABW', 'AFG', 'AGO', 'AIA', 'ALA', 'ALB', 'AND', 'ANT', 'ARE', 'ARG', 'ARM', 'ASM', 'ATA', 'ATF', 'AUS', 'AUT', 'AZE', 'BDI', 'BEL', 'BEN', 'BES', 'BGD', 'BGR', 'BHR', 'BHS', 'BIH', 'BLM', 'BLR', 'BLZ', 'BMU', 'BOL', 'BRA', 'BRB', 'BRN', 'BTN', 'BUR', 'BVT', 'BWA', 'CAF', 'CAN', 'CCK', 'CHE', 'CHL', 'CHN', 'CIV', 'CMR', 'COD', 'COG', 'COK', 'COL', 'COM', 'CPV', 'CRI', 'CTE', 'CUB', 'CUW', 'CXR', 'CYM', 'CYP', 'CZE', 'DEU', 'DJI', 'DMA', 'DNK', 'DOM', 'DZA', 'ECU', 'EGY', 'ERI', 'ESH', 'ESP', 'EST', 'ETH', 'FIN', 'FJI', 'FLK', 'FRA', 'FRO', 'FSM', 'GAB', 'GBR', 'GEO', 'GGY', 'GHA', 'GIB', 'GIN', 'GLP', 'GMB', 'GNB', 'GNQ', 'GRC', 'GRD', 'GRL', 'GTM', 'GUF', 'GUM', 'GUY', 'HKG', 'HMD', 'HND', 'HRV', 'HTI', 'HUN', 'IDN', 'IMN', 'IND', 'IOT', 'IRL', 'IRN', 'IRQ', 'ISL', 'ISR', 'ITA', 'JAM', 'JEY', 'JOR', 'JPN', 'KAZ', 'KEN', 'KGZ', 'KHM', 'KIR', 'KNA', 'KOR', 'KWT', 'LAO', 'LBN', 'LBR', 'LBY', 'LCA', 'LIE', 'LKA', 'LTU', 'LUX', 'LVA', 'MAC', 'MAF', 'MAR', 'MCO', 'MDA', 'MDG', 'MDV', 'MEX', 'MHL', 'MKD', 'MLI', 'MLT', 'MMR', 'MNE', 'MNG', 'MNP', 'MOZ', 'MSR', 'MTQ', 'MUS', 'MYS', 'MYT', 'NAM', 'NCL', 'NER', 'NFK', 'NGA', 'NHB', 'NIC', 'NIU', 'NLD', 'NOR', 'NPL', 'NRU', 'NZL', 'OMN', 'PAK', 'PAN', 'PCN', 'PER', 'PHL', 'PLW', 'PNG', 'POL', 'PRI', 'PRK', 'PRT', 'PRY', 'PSE', 'PYF', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'SAU', 'SCG', 'SDN', 'SEN', 'SGP', 'SGS', 'SHN', 'SJM', 'SLB', 'SLE', 'SLV', 'SMR', 'SOM', 'SPM', 'SRB', 'SSD', 'SUR', 'SVK', 'SVN', 'SWE', 'SWZ', 'SXM', 'SYC', 'SYR', 'TCA', 'TCD', 'TGO', 'THA', 'TJK', 'TKL', 'TKM', 'TLS', 'TON', 'TTO', 'TUN', 'TUR', 'TUV', 'TWN', 'TZA', 'UGA', 'UKR', 'UMI', 'URY', 'USA', 'UZB', 'VAT', 'VCT', 'VEN', 'VGB', 'VIR', 'VNM', 'VUT', 'WLF', 'WSM', 'YEM', 'YUG', 'ZAF', 'ZMB', 'ZWE']<br \/>  <\/code><br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0439. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b <i>details2.pkl<\/i>, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u043e\u0432, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435. <\/p>\n<h3>\u041b\u043e\u043a\u0430\u0446\u0438\u044f<\/h3>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043e \u0441\u0442\u0440\u0430\u043d\u0430\u0445 \u0442\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0438 \u0432 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>loc<\/i>. <br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>event<\/th>\n<th>date<\/th>\n<th><u>loc<\/u><\/th>\n<th>males<\/th>\n<th>females<\/th>\n<th>rus<\/th>\n<th>total<\/th>\n<th>link<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>Ironman Dubai Duathlon 70.3 2020<\/td>\n<td>2020-07-02<\/td>\n<td><u>Dubai, United Arab Emirates<\/u><\/td>\n<td>835<\/td>\n<td>215<\/td>\n<td>65<\/td>\n<td>1050<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Ironman Dubai 70.3 2020<\/td>\n<td>2020-02-07<\/td>\n<td><u>Dubai, United Arab Emirates<\/u><\/td>\n<td>638<\/td>\n<td>132<\/td>\n<td>55<\/td>\n<td>770<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Israman Half 2020<\/td>\n<td>2020-01-29<\/td>\n<td><u>Israel, Eilat<\/u><\/td>\n<td>670<\/td>\n<td>126<\/td>\n<td>4<\/td>\n<td>796<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Ironman Indian Wells La Quinta 70.3 2019<\/td>\n<td>2019-12-08<\/td>\n<td><u>Indian Wells\/La Quinta, California, USA<\/u><\/td>\n<td>1590<\/td>\n<td>593<\/td>\n<td>6<\/td>\n<td>2183<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Ironman Taupo 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td><u>New Zealand<\/u><\/td>\n<td>767<\/td>\n<td>420<\/td>\n<td>3<\/td>\n<td>1187<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Ironman Bahrain 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td><u>Manama, Bahrain<\/u><\/td>\n<td>858<\/td>\n<td>214<\/td>\n<td>38<\/td>\n<td>1072<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Ironman Western Australia 2019<\/td>\n<td>2019-12-01<\/td>\n<td><u>Busselton, Western Australia<\/u><\/td>\n<td>940<\/td>\n<td>229<\/td>\n<td>1<\/td>\n<td>1169<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Ironman Mar del Plata 2019<\/td>\n<td>2019-12-01<\/td>\n<td><u>Mar del Plata, Argentina<\/u><\/td>\n<td>506<\/td>\n<td>66<\/td>\n<td>3<\/td>\n<td>572<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Ironman Cozumel 2019<\/td>\n<td>2019-11-24<\/td>\n<td><u>Cozumel, Mexico<\/u><\/td>\n<td>1158<\/td>\n<td>395<\/td>\n<td>12<\/td>\n<td>1553<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>Ironman Arizona 2019<\/td>\n<td>2019-11-24<\/td>\n<td><u>Tempe, Arizona, USA<\/u><\/td>\n<td>1697<\/td>\n<td>633<\/td>\n<td>3<\/td>\n<td>2330<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0415\u0433\u043e \u0442\u043e\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c\u0443 \u0432\u0438\u0434\u0443. \u0417\u0434\u0435\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f: \u043d\u0435 \u0432\u0438\u0434\u043d\u043e \u043d\u0438 ISO, \u043d\u0438 \u043e\u043b\u0438\u043c\u043f\u0438\u0439\u0441\u043a\u0438\u0445 \u043a\u043e\u0434\u043e\u0432. \u0412\u0441\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435. \u0427\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0433\u043e\u0440\u043e\u0434, \u0441\u0442\u0440\u0430\u043d\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u043f\u0440\u0438\u0447\u0435\u043c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u0413\u0434\u0435-\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u0430 \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0433\u0434\u0435-\u0442\u043e \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c. pycountry \u0442\u0443\u0442 \u0443\u0436\u0435 \u043d\u0435 \u043f\u043e\u043c\u043e\u0436\u0435\u0442. \u0410 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043c\u043d\u043e\u0433\u043e \u2013 \u043d\u0430 1922 \u0433\u043e\u043d\u043a\u0438 525 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u0446\u0438\u0439 (\u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0432\u0438\u0434\u0435).<\/p>\n<p>  \u041d\u043e \u0438 \u0442\u0443\u0442 \u043d\u0430\u0448\u0435\u043b\u0441\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442. \u042d\u0442\u043e <a href=\"https:\/\/pypi.org\/project\/geopy\/\">geopy<\/a>, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e <i>geolocator Nominatim<\/i>. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"python\">from geopy.geocoders import Nominatim  geolocator = Nominatim(user_agent='triathlon results researcher') geolocator.geocode('\u0411\u0438\u0440\u044e\u0437\u043e\u0432\u0430\u044f \u041a\u0430\u0442\u0443\u043d\u044c, \u0410\u043b\u0442\u0430\u0439, \u0420\u043e\u0441\u0441\u0438\u044f', language='en') <\/code><\/pre>\n<p>  <code><b>Out:<\/b> Location(\u0411\u0438\u0440\u044e\u0437\u043e\u0432\u0430\u044f \u041a\u0430\u0442\u0443\u043d\u044c, \u0410\u044f \u2013 \u0411\u0438\u0440\u044e\u0437\u043e\u0432\u0430\u044f \u041a\u0430\u0442\u0443\u043d\u044c, \u0410\u0439\u0441\u043a\u0438\u0439 \u0441\u0435\u043b\u044c\u0441\u043e\u0432\u0435\u0442, Altaysky District, Altai Krai, Siberian Federal District, Russia, (51.78897945, 85.73956296106752, 0.0))<br \/>  <\/code><br \/>  \u041f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u0432\u044b\u0434\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u2013 \u0430\u0434\u0440\u0435\u0441 \u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u044f\u0437\u044b\u043a, \u043a\u0430\u043a \u0437\u0434\u0435\u0441\u044c \u2013 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439, \u0442\u043e \u0447\u0442\u043e \u0441\u043c\u043e\u0436\u0435\u0442 \u2014 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u0442. \u041d\u0430\u043c \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0443\u0436\u043d\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0432 \u043a\u043e\u0434 ISO. \u041e\u043d\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0441\u0442\u043e\u0438\u0442 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435 <i>address<\/i>. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <i>geolocator <\/i>\u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u044d\u0442\u043e\u0442 \u043d\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u0434\u043b\u044f 500 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0431\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0442\u0432\u0435\u0442 \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441. \u0412 \u043c\u043e\u0435\u043c \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u0430 \u043e\u0442\u0432\u0435\u0442 \u043d\u0435 \u043f\u0440\u0438\u0448\u0435\u043b \u043d\u0430 130 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u0411\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u043c\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0430\u043c\u0438. \u041e\u0434\u043d\u0430\u043a\u043e 34 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u0430\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u043c\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u043c\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0430\u043c\u0438. \u0412\u043e\u0442 \u043e\u043d\u0438:<br \/>  <code>['Tongyeong, Korea, Korea, South', 'Constanta, Mamaia, Romania, Romania', 'Weihai, China, China', '\u0434. \u0422\u043e\u043b\u0432\u0438\u043d\u043a\u0430, \u0411\u0440\u044f\u043d\u0441\u043a\u0430\u044f \u043e\u0431\u043b.', 'Odaiba Marin Park, Tokyo, Japan, Japan', 'Sweden, Smaland, Kalmar', 'Cholpon-Ata city, Resort Center &quot;Kapriz&quot;, Kyrgyzstan', 'Luxembourg, Region Moselle, Moselle', 'Chita Peninsula, Japan', 'Kraichgau Region, Germany', 'Jintang, Chengdu, Sichuan Province, China, China', 'Madrid, Spain, Spain', 'North American Pro Championship, St. George, Utah, USA', 'Milan Idroscalo Linate, Italy', 'Dexing, Jiangxi Province, China, China', 'Mooloolaba, Australia, Australia', 'Nathan Benderson Park (NBP), 5851 Nathan Benderson Circle, Sarasota, FL 34235., United States', 'Strathclyde Country Park, North Lanarkshire, Glasgow, Great Britain', 'Quijing, China', 'United States of America , Hawaii, Kohala Coast', 'Buffalo City, East London, South Africa', 'Spain, Vall de Cardener', '\u0420\u043e\u0441\u0441\u0438\u044f, \u043f\u043e\u0441. \u041c\u0435\u0442\u043b\u0438\u043d\u043e \u041e\u0437\u0435\u0440\u0441\u043a\u0438\u0439 \u0433\u043e\u0440\u043e\u0434\u0441\u043a\u043e\u0439 \u043e\u043a\u0440\u0443\u0433', 'Asian TriClub Championship, Hefei, China', 'Taizhou, Jiangsu Province, China, China', '\u0420\u043e\u0441\u0441\u0438\u044f, \u041c\u043e\u0441\u043a\u0432\u0430, \u0421\u0426\u041f \u00ab\u041a\u0440\u044b\u043b\u0430\u0442\u0441\u043a\u043e\u0435\u00bb', 'Buffalo, Gallagher Beach, Furhmann Blvd, United States', 'North American Pro Championship | St. George, Utah, USA', 'Weihai, Shandong, China, China', 'Tarzo - Revine Lago, Italy', 'Lausanee, Switzerland', 'Queenstown, New Zealand, New Zealand', 'Makuhari, Japan, Japan', 'Szombathlely, Hungary']<br \/>  <\/code><br \/>  \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u044b, \u0438 \u044d\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u0435\u0448\u0430\u0435\u0442. \u0412 \u043e\u0431\u0449\u0435\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u044d\u0442\u0438 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0431\u044b\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430. \u0414\u0430\u043b\u0435\u0435 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u044f \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u0441\u0442\u0440\u0430\u043d\u0443 \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043b \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0443 \u0432 \u043d\u043e\u0432\u0443\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0432 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u043a\u0430\u043a \u044f \u0443\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 <i>geopy<\/i> \u043d\u0435 \u0431\u044b\u0441\u0442\u0440\u0430\u044f, \u044f \u0440\u0435\u0448\u0438\u043b \u0441\u0440\u0430\u0437\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u2013 \u0448\u0438\u0440\u043e\u0442\u0443 \u0438 \u0434\u043e\u043b\u0433\u043e\u0442\u0443. \u041e\u043d\u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u043e\u0437\u0436\u0435 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435. <br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>event<\/th>\n<th>date<\/th>\n<th>loc<\/th>\n<th><u>country<\/u><\/th>\n<th><u>latitude<\/u><\/th>\n<th><u>longitude<\/u><\/th>\n<th>...<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>Ironman Dubai Duathlon 70.3 2020<\/td>\n<td>2020-07-02<\/td>\n<td>Dubai, United Arab Emirates<\/td>\n<td><u>United Arab Emirates<\/u><\/td>\n<td><u>25.0657<\/u><\/td>\n<td><u>55.1713<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Ironman Dubai 70.3 2020<\/td>\n<td>2020-02-07<\/td>\n<td>Dubai, United Arab Emirates<\/td>\n<td><u>United Arab Emirates<\/u><\/td>\n<td><u>25.0657<\/u><\/td>\n<td><u>55.1713<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Israman Half 2020<\/td>\n<td>2020-01-29<\/td>\n<td>Israel, Eilat<\/td>\n<td><u>Israel<\/u><\/td>\n<td><u>29.5569<\/u><\/td>\n<td><u>34.9498<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Ironman Indian Wells La Quinta 70.3 2019<\/td>\n<td>2019-12-08<\/td>\n<td>Indian Wells\/La Quinta, California, USA<\/td>\n<td><u>United States of America<\/u><\/td>\n<td><u>33.7238<\/u><\/td>\n<td><u>-116.305<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Ironman Taupo 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td>New Zealand<\/td>\n<td><u>New Zealand<\/u><\/td>\n<td><u>-41.5001<\/u><\/td>\n<td><u>172.834<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Ironman Bahrain 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td>Manama, Bahrain<\/td>\n<td><u>Bahrain<\/u><\/td>\n<td><u>26.2235<\/u><\/td>\n<td><u>50.5822<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Ironman Western Australia 2019<\/td>\n<td>2019-12-01<\/td>\n<td>Busselton, Western Australia<\/td>\n<td><u>Australia<\/u><\/td>\n<td><u>-33.6445<\/u><\/td>\n<td><u>115.349<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Ironman Mar del Plata 2019<\/td>\n<td>2019-12-01<\/td>\n<td>Mar del Plata, Argentina<\/td>\n<td><u>Argentina<\/u><\/td>\n<td><u>-37.9977<\/u><\/td>\n<td><u>-57.5483<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Ironman Cozumel 2019<\/td>\n<td>2019-11-24<\/td>\n<td>Cozumel, Mexico<\/td>\n<td><u>Mexico<\/u><\/td>\n<td><u>20.4318<\/u><\/td>\n<td><u>-86.9203<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>Ironman Arizona 2019<\/td>\n<td>2019-11-24<\/td>\n<td>Tempe, Arizona, USA<\/td>\n<td><u>United States of America<\/u><\/td>\n<td><u>33.4255<\/u><\/td>\n<td><u>-111.94<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>Ironman Xiamen 70.3 2019<\/td>\n<td>2019-11-10<\/td>\n<td>Xiamen, China<\/td>\n<td><u>China<\/u><\/td>\n<td><u>24.4758<\/u><\/td>\n<td><u>118.075<\/u><\/td>\n<td>...<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <i>pyco.countries.get(name = \u2018&#8230;\u2019).alpha_3<\/i> \u0438\u0441\u043a\u0430\u043b \u0441\u0442\u0440\u0430\u043d\u0443 \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0438 \u0432\u044b\u0434\u0435\u043b\u044f\u043b \u0442\u0440\u0435\u0445\u0437\u043d\u0430\u0447\u043d\u044b\u0439 \u043a\u043e\u0434.<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>event<\/th>\n<th>date<\/th>\n<th>loc<\/th>\n<th><u>country<\/u><\/th>\n<th>latitude<\/th>\n<th>longitude<\/th>\n<th>...<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>Ironman Dubai Duathlon 70.3 2020<\/td>\n<td>2020-07-02<\/td>\n<td>Dubai, United Arab Emirates<\/td>\n<td><u>ARE<\/u><\/td>\n<td>25.0657<\/td>\n<td>55.1713<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Ironman Dubai 70.3 2020<\/td>\n<td>2020-02-07<\/td>\n<td>Dubai, United Arab Emirates<\/td>\n<td><u>ARE<\/u><\/td>\n<td>25.0657<\/td>\n<td>55.1713<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Israman Half 2020<\/td>\n<td>2020-01-29<\/td>\n<td>Israel, Eilat<\/td>\n<td><u>ISR<\/u><\/td>\n<td>29.5569<\/td>\n<td>34.9498<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Ironman Indian Wells La Quinta 70.3 2019<\/td>\n<td>2019-12-08<\/td>\n<td>Indian Wells\/La Quinta, California, USA<\/td>\n<td><u>USA<\/u><\/td>\n<td>33.7238<\/td>\n<td>-116.305<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Ironman Taupo 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td>New Zealand<\/td>\n<td><u>NZL<\/u><\/td>\n<td>-41.5001<\/td>\n<td>172.834<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Ironman Bahrain 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td>Manama, Bahrain<\/td>\n<td><u>BHR<\/u><\/td>\n<td>26.2235<\/td>\n<td>50.5822<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Ironman Western Australia 2019<\/td>\n<td>2019-12-01<\/td>\n<td>Busselton, Western Australia<\/td>\n<td><u>AUS<\/u><\/td>\n<td>-33.6445<\/td>\n<td>115.349<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Ironman Mar del Plata 2019<\/td>\n<td>2019-12-01<\/td>\n<td>Mar del Plata, Argentina<\/td>\n<td><u>ARG<\/u><\/td>\n<td>-37.9977<\/td>\n<td>-57.5483<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Ironman Cozumel 2019<\/td>\n<td>2019-11-24<\/td>\n<td>Cozumel, Mexico<\/td>\n<td><u>MEX<\/u><\/td>\n<td>20.4318<\/td>\n<td>-86.9203<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>Ironman Arizona 2019<\/td>\n<td>2019-11-24<\/td>\n<td>Tempe, Arizona, USA<\/td>\n<td><u>USA<\/u><\/td>\n<td>33.4255<\/td>\n<td>-111.94<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>Ironman Xiamen 70.3 2019<\/td>\n<td>2019-11-10<\/td>\n<td>Xiamen, China<\/td>\n<td><u>CHN<\/u><\/td>\n<td>24.4758<\/td>\n<td>118.075<\/td>\n<td>...<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>  <\/p>\n<h3>\u0414\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f<\/h3>\n<p>  \u0415\u0449\u0435 \u043e\u0434\u043d\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u2013 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043e\u043d\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044e. \u042d\u0442\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430\u043c \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0435\u0439 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c. \u0412 \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u2013 \u0441\u043f\u0440\u0438\u043d\u0442, \u043e\u043b\u0438\u043c\u043f\u0438\u0439\u0441\u043a\u0430\u044f, \u043f\u043e\u043b\u0443\u0436\u0435\u043b\u0435\u0437\u043d\u0430\u044f \u0438 \u0436\u0435\u043b\u0435\u0437\u043d\u0430\u044f. \u041c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u0445 \u0433\u043e\u043d\u043e\u043a \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0435\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044e \u2013 \u044d\u0442\u043e \u0421\u043b\u043e\u0432\u0430 <i>Sprint<\/i>, <i>Olympic<\/i>, <i>Half<\/i>, <i>Full<\/i>. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u0443 \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u0432\u043e\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0439. \u041f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0430 \u0443 Ironman, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a <i>70.3<\/i> \u2013 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043c\u0438\u043b\u044c \u0432 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438, \u043e\u043b\u0438\u043c\u043f\u0438\u0439\u0441\u043a\u0430\u044f \u2013 <i>5150<\/i> \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u043e\u0432 (51.5), \u0430 \u0436\u0435\u043b\u0435\u0437\u043d\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a <i>Full<\/i> \u0438\u043b\u0438, \u0432\u043e\u043e\u0431\u0449\u0435, \u043a\u0430\u043a \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u2013 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <i>Ironman Arizona 2019<\/i>. Ironman \u2013 \u043e\u043d \u0438 \u0435\u0441\u0442\u044c \u0436\u0435\u043b\u0435\u0437\u043d\u044b\u0439! \u0423 Challenge \u0436\u0435\u043b\u0435\u0437\u043d\u0430\u044f \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a <i>Long<\/i>, \u0430 \u043f\u043e\u043b\u0443\u0436\u0435\u043b\u0435\u0437\u043d\u0430\u044f \u2013 \u043a\u0430\u043a <i>Middle<\/i>. \u041d\u0430\u0448 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 IronStar \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u0443\u044e \u043a\u0430\u043a <i>226<\/i>, \u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0443 \u043a\u0430\u043a <i>113<\/i> \u2013 \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u043e\u0432, \u043d\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043b\u043e\u0432\u0430 <i>Full<\/i> \u0438 <i>Half<\/i> \u0442\u043e\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0432\u0441\u0435 \u044d\u0442\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u043c\u0435\u0442\u0438\u043c \u0432\u0441\u0435 \u0433\u043e\u043d\u043a\u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u0445. <\/p>\n<pre><code class=\"python\">sprints = rs.loc[[i for i in rs.index if 'sprint' in rs.loc[i, 'event'].lower()]] olympics1 = rs.loc[[i for i in rs.index if 'olympic' in rs.loc[i, 'event'].lower()]] olympics2 = rs.loc[[i for i in rs.index if '5150' in rs.loc[i, 'event'].lower()]] olympics = pd.concat([olympics1, olympics2]) #\u2026 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435  rsd = pd.concat([sprints, olympics, halfs, fulls])  <\/code><\/pre>\n<p>  \u0412 <i>rsd<\/i> \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c 1 925 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0430 \u0442\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0433\u043e\u043d\u043e\u043a, \u0437\u043d\u0430\u0447\u0438\u0442 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u043e\u043f\u0430\u043b\u0438 \u043f\u043e\u0434 \u0434\u0432\u0430 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0438\u0445:<\/p>\n<pre><code class=\"python\">rsd[rsd.duplicated(keep=False)]['event'].sort_index() <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th><u>event<\/u><\/th>\n<th>date<\/th>\n<th>loc<\/th>\n<th>country<\/th>\n<th>latitude<\/th>\n<th>longitude<\/th>\n<th>...<\/th>\n<\/tr>\n<tr>\n<td>38<\/td>\n<td><u>Temiradam 113 Half 2019<\/u><\/td>\n<td>2019-09-22<\/td>\n<td>\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d, \u0410\u043a\u0442\u0430\u0443<\/td>\n<td>KAZ<\/td>\n<td>43.6521<\/td>\n<td>51.158<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>38<\/td>\n<td><u>Temiradam 113 Half 2019<\/u><\/td>\n<td>2019-09-22<\/td>\n<td>\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d, \u0410\u043a\u0442\u0430\u0443<\/td>\n<td>KAZ<\/td>\n<td>43.6521<\/td>\n<td>51.158<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>65<\/td>\n<td><u>Triway Olympic Sprint 2019<\/u><\/td>\n<td>2019-09-08<\/td>\n<td>\u0420\u043e\u0441\u0441\u0438\u044f, \u0420\u043e\u0441\u0442\u043e\u0432-\u043d\u0430-\u0414\u043e\u043d\u0443<\/td>\n<td>RUS<\/td>\n<td>47.2214<\/td>\n<td>39.7114<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>65<\/td>\n<td><u>Triway Olympic Sprint 2019<\/u><\/td>\n<td>2019-09-08<\/td>\n<td>\u0420\u043e\u0441\u0441\u0438\u044f, \u0420\u043e\u0441\u0442\u043e\u0432-\u043d\u0430-\u0414\u043e\u043d\u0443<\/td>\n<td>RUS<\/td>\n<td>47.2214<\/td>\n<td>39.7114<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>82<\/td>\n<td><u>Ironman Dun Laoghaire Full Swim 70.3 2019<\/u><\/td>\n<td>2019-08-25<\/td>\n<td>Ireland, Dun Laoghaire<\/td>\n<td>IRL<\/td>\n<td>53.2923<\/td>\n<td>-6.13601<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>82<\/td>\n<td><u>Ironman Dun Laoghaire Full Swim 70.3 2019<\/u><\/td>\n<td>2019-08-25<\/td>\n<td>Ireland, Dun Laoghaire<\/td>\n<td>IRL<\/td>\n<td>53.2923<\/td>\n<td>-6.13601<\/td>\n<td>...<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0442\u0430\u043a \u0438 \u0435\u0441\u0442\u044c. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0430\u0440\u0435 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 <i>Temiradam 113 Half 2019<\/i> \u0435\u0441\u0442\u044c \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u0438 <i>Half<\/i> \u0438 <i>113<\/i>. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0435, \u043e\u043d\u0438 \u043e\u0431\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u043a \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0438. \u0414\u0430\u043b\u0435\u0435 \u2014 <i>Triway Olympic Sprint 2019<\/i>. \u0417\u0434\u0435\u0441\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u2013 \u0435\u0441\u0442\u044c \u0438 <i>Olympic<\/i> \u0438 <i>Sprint<\/i>. \u0420\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u043d\u0430 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0433\u043e\u043d\u043a\u0438. <br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>place in group<\/th>\n<th>swim<\/th>\n<th>t1<\/th>\n<th>bike<\/th>\n<th>t2<\/th>\n<th>run<\/th>\n<th><u>result<\/u><\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>M<\/td>\n<td>\u0425\u0438\u0441\u043c\u0430\u0442\u0443\u043b\u043b\u0438\u043d \u0420\u043e\u043c\u0430\u043d<\/td>\n<td>RUS<\/td>\n<td>M\u041c\u0443\u0436\u0447\u0438\u043d\u044b<\/td>\n<td>1<\/td>\n<td>00:12:21<\/td>\n<td>00:00:31<\/td>\n<td>00:34:13<\/td>\n<td>00:00:25<\/td>\n<td>00:21:49<\/td>\n<td><u>01:09:19<\/u><\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<td>\u0414\u0438\u043a\u043e\u0432 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440<\/td>\n<td>RUS<\/td>\n<td>M\u041c\u0443\u0436\u0447\u0438\u043d\u044b<\/td>\n<td>2<\/td>\n<td>00:12:21<\/td>\n<td>00:00:28<\/td>\n<td>00:34:15<\/td>\n<td>00:00:26<\/td>\n<td>00:23:07<\/td>\n<td><u>01:10:38<\/u><\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>3<\/td>\n<td>M<\/td>\n<td>\u0413\u043e\u0440\u043b\u043e\u0432 \u0414\u043c\u0438\u0442\u0440\u0438\u0439<\/td>\n<td>RUS<\/td>\n<td>M\u041c\u0443\u0436\u0447\u0438\u043d\u044b<\/td>\n<td>3<\/td>\n<td>00:14:20<\/td>\n<td>00:00:37<\/td>\n<td>00:35:48<\/td>\n<td>00:00:34<\/td>\n<td>00:22:16<\/td>\n<td><u>01:13:35<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041b\u0443\u0447\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u2013 1:09. \u0417\u043d\u0430\u0447\u0438\u0442 \u044d\u0442\u043e \u0441\u043f\u0440\u0438\u043d\u0442. \u0423\u0434\u0430\u043b\u0438\u043c \u044d\u0442\u0443 \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u043e\u043b\u0438\u043c\u043f\u0438\u0439\u0441\u043a\u0438\u0445.<\/p>\n<pre><code class=\"python\">olympics.drop(65) <\/code><\/pre>\n<p>  \u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043c \u0441 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u043c\u0438\u0441\u044f <i>Ironman Dun Laoghaire Full Swim 70.3 2019<\/i><br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>place in group<\/th>\n<th>swim<\/th>\n<th>t1<\/th>\n<th>bike<\/th>\n<th>t2<\/th>\n<th>run<\/th>\n<th><u>result<\/u><\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>M<\/td>\n<td>Brownlee, Alistair<\/td>\n<td>GBR<\/td>\n<td>MPRO<\/td>\n<td>1<\/td>\n<td>00:23:19<\/td>\n<td>00:02:18<\/td>\n<td>02:21:19<\/td>\n<td>00:01:55<\/td>\n<td>01:11:42<\/td>\n<td><u>04:00:33<\/u><\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<td>Smales, Elliot<\/td>\n<td>GBR<\/td>\n<td>MPRO<\/td>\n<td>2<\/td>\n<td>00:24:47<\/td>\n<td>00:02:09<\/td>\n<td>02:29:26<\/td>\n<td>00:01:48<\/td>\n<td>01:12:47<\/td>\n<td><u>04:10:57<\/u><\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>3<\/td>\n<td>M<\/td>\n<td>Bowden, Adam<\/td>\n<td>GBR<\/td>\n<td>MPRO<\/td>\n<td>3<\/td>\n<td>00:23:24<\/td>\n<td>00:02:18<\/td>\n<td>02:32:09<\/td>\n<td>00:02:06<\/td>\n<td>01:13:49<\/td>\n<td><u>04:13:46<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0417\u0434\u0435\u0441\u044c \u043b\u0443\u0447\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f 4:00. \u042d\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0438. \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c 85 \u0438\u0437 <i>fulls<\/i>.<\/p>\n<pre><code class=\"python\">fulls.drop(85) <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<\/p>\n<pre><code class=\"python\">rs['dist'] = ''  rs.loc[sprints.index,'dist'] = 'sprint' rs.loc[olympics.index,'dist'] = 'olympic' rs.loc[halfs.index,'dist'] = 'half' rs.loc[fulls.index,'dist'] = 'full'  rs.sample(10) <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th><u>group<\/u><\/th>\n<th>place in group<\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th><u>group raw<\/u><\/th>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>566<\/td>\n<td>M<\/td>\n<td>Vladimir Kozar<\/td>\n<td>SVK<\/td>\n<td><u>M40-44<\/u><\/td>\n<td>8<\/td>\n<td>...<\/td>\n<td>SVK<\/td>\n<td><u>MOpen 40-44<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>8<\/td>\n<td>M<\/td>\n<td>HANNES COOL<\/td>\n<td>BEL<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>11<\/td>\n<td>...<\/td>\n<td>BEL<\/td>\n<td><u>MPRO M<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>445<\/td>\n<td>F<\/td>\n<td>Ileana Sodani<\/td>\n<td>USA<\/td>\n<td><u>F45-49<\/u><\/td>\n<td>4<\/td>\n<td>...<\/td>\n<td>USA<\/td>\n<td><u>F45-49 F<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>227<\/td>\n<td>F<\/td>\n<td>JARLINSKA Bozena<\/td>\n<td>POL<\/td>\n<td><u>F45-49<\/u><\/td>\n<td>2<\/td>\n<td>...<\/td>\n<td>POL<\/td>\n<td><u>FK45-49<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>440<\/td>\n<td>F<\/td>\n<td>Celine Orrigoni<\/td>\n<td>FRA<\/td>\n<td><u>F40-44<\/u><\/td>\n<td>6<\/td>\n<td>...<\/td>\n<td>FRA<\/td>\n<td><u>F40-44 F<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>325<\/td>\n<td>M<\/td>\n<td>Vladimir Eckert<\/td>\n<td>SVK<\/td>\n<td><u>M40-44<\/u><\/td>\n<td>6<\/td>\n<td>...<\/td>\n<td>SVK<\/td>\n<td><u>MOpen 40-44<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>139<\/td>\n<td>F<\/td>\n<td>ATRASZKIEWICZ Magda<\/td>\n<td>POL<\/td>\n<td><u>F40-44<\/u><\/td>\n<td>2<\/td>\n<td>...<\/td>\n<td>POL<\/td>\n<td><u>FK40-44<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>18<\/td>\n<td>M<\/td>\n<td>Marijn de Jonge<\/td>\n<td>NLD<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>18<\/td>\n<td>...<\/td>\n<td>NED<\/td>\n<td><u>Mpro<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>574<\/td>\n<td>M<\/td>\n<td>Luca Andalo<\/td>\n<td>ITA<\/td>\n<td><u>M40-44<\/u><\/td>\n<td>9<\/td>\n<td>...<\/td>\n<td>ITA<\/td>\n<td><u>MOpen 40-44<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>67<\/td>\n<td>M<\/td>\n<td>URBANKIEWICZ Aleksandra<\/td>\n<td>POL<\/td>\n<td><u>M35-39<\/u><\/td>\n<td>1<\/td>\n<td>...<\/td>\n<td>POL<\/td>\n<td><u>MK35-39<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u043f\u043e\u043a\u0440\u044b\u0442\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439:<\/p>\n<pre><code class=\"python\">len(rs[rs['dist'] == '']) <\/code><\/pre>\n<p>  <code><b>Out:<\/b> 0<br \/>  <\/code><br \/>  \u0418 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0430\u0448\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0435, \u0434\u0432\u0443\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0435:<\/p>\n<pre><code class=\"python\">rs.loc[[38,65,82],['event','dist']] <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>event<\/th>\n<th><u>dist<\/u><\/th>\n<\/tr>\n<tr>\n<td>38<\/td>\n<td>Temiradam 113 Half 2019<\/td>\n<td><u>half<\/u><\/td>\n<\/tr>\n<tr>\n<td>65<\/td>\n<td>Triway Olympic Sprint 2019<\/td>\n<td><u>sprint<\/u><\/td>\n<\/tr>\n<tr>\n<td>82<\/td>\n<td>Ironman Dun Laoghaire Full Swim 70.3 2019<\/td>\n<td><u>half<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0412\u0441\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432 \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"python\">pkl.dump(rs, open(r'D:\\tri\\summary5.pkl', 'wb')) <\/code><\/pre>\n<p>  <\/p>\n<h3>\u0412\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b<\/h3>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c \u0433\u043e\u043d\u043e\u043a.<\/p>\n<p>  \u041c\u044b \u0443\u0436\u0435 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u043e\u043b, \u0441\u0442\u0440\u0430\u043d\u0443 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430, \u0438 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u0438\u0445 \u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c\u0443 \u0432\u0438\u0434\u0443. \u041d\u043e \u0435\u0449\u0435 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0435\u0449\u0435 \u0434\u0432\u0435 \u0433\u0440\u0430\u0444\u044b \u2013 \u0433\u0440\u0443\u043f\u043f\u0430 \u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c\u043e \u0438\u043c\u044f. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0433\u0440\u0443\u043f\u043f. \u0412 \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d\u0435 \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c. \u0422\u0430\u043a\u0436\u0435 \u0447\u0430\u0441\u0442\u043e \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u0432. \u041f\u043e \u0441\u0443\u0442\u0438, \u0437\u0430\u0447\u0435\u0442 \u0438\u0434\u0435\u0442 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u0430\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u2014 \u043d\u0430\u0433\u0440\u0430\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0435 \u0442\u0440\u0438 \u043c\u0435\u0441\u0442\u0430 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435. \u041f\u043e \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0436\u0435 \u0438\u0434\u0435\u0442 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043e\u0442\u0431\u043e\u0440 \u043d\u0430 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u041a\u043e\u043d\u0443. <\/p>\n<p>  \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442. <\/p>\n<pre><code class=\"python\">rd = pkl.load(open(r'D:\\tri\\details2.pkl', 'rb')) ar = pd.concat(rd) ar['group'].unique() <\/code><\/pre>\n<p>  \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0433\u0440\u0443\u043f\u043f \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u2013 581. \u0421\u043e\u0442\u043d\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a: <br \/>  <code>['MSenior', 'FAmat.', 'M20', 'M65-59', 'F25-29', 'F18-22', 'M75-59', 'MPro', 'F24', 'MCORP M', 'F21-30', 'MSenior 4', 'M40-50', 'FAWAD', 'M16-29', 'MK40-49', 'F65-70', 'F65-70', 'M12-15', 'MK18-29', 'M\u041c50up', 'FSEMIFINAL 2 PRO', 'F16', 'MWhite', 'MOpen 25-29', 'F\u041f\u0430\u0440\u0430\u0430\u0442\u043b\u0435\u0442', 'MPT TRI-2', 'M16-24', 'FQUALIFIER 1 PRO', 'F15-17', 'FSEMIFINAL 2 JUNIOR', 'FOpen 60-64', 'M75-80', 'F60-69', 'FJUNIOR A', 'F17-18', 'FAWAD BLIND', 'M75-79', 'M18-29', 'MJUN19-23', 'M60-up', 'M70', 'MPTS5', 'F35-40', &quot;M'S PT1&quot;, 'M50-54', 'F65-69', 'F17-20', 'MP4', 'M16-29', 'F18up', 'MJU', 'MPT4', 'MPT TRI-3', 'MU24-39', 'MK35-39', 'F18-20', &quot;M'S&quot;, 'F50-55', 'M75-80', 'MXTRI', 'F40-45', 'MJUNIOR B', 'F15', 'F18-19', 'M20-29', 'MAWAD PC4', 'M30-37', 'F21-30', 'Mpro', 'MSEMIFINAL 1 JUNIOR', 'M25-34', 'MAmat.', 'FAWAD PC5', 'FA', 'F50-60', 'FSenior 1', 'M80-84', 'FK45-49', 'F75-79', 'M&lt;23', 'MPTS3', 'M70-75', 'M50-60', 'FQUALIFIER 3 PRO', 'M9', 'F31-40', 'MJUN16-19', 'F18-19', 'M PARA', 'F35-44', 'MParaathlete', 'F18-34', 'FA', 'FAWAD PC2', 'FAll Ages', 'M PARA', 'F31-40', 'MM85', 'M25-39']<br \/>  <\/code><br \/>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0441\u0430\u043c\u044b\u0435 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435:<\/p>\n<pre><code class=\"python\">ar['group'].value_counts()[:30] <\/code><\/pre>\n<p>  <code><b>Out:<\/b><br \/>  M40-44 199157<br \/>  M35-39 183738<br \/>  M45-49 166796<br \/>  M30-34 154732<br \/>  M50-54 107307<br \/>  M25-29 88980<br \/>  M55-59 50659<br \/>  F40-44 48036<br \/>  F35-39 47414<br \/>  F30-34 45838<br \/>  F45-49 39618<br \/>  MPRO 38445<br \/>  F25-29 31718<br \/>  F50-54 26253<br \/>  M18-24 24534<br \/>  FPRO 23810<br \/>  M60-64 20773<br \/>  M 12799<br \/>  F55-59 12470<br \/>  M65-69 8039<br \/>  F18-24 7772<br \/>  MJUNIOR 6605<br \/>  F60-64 5067<br \/>  M20-24 4580<br \/>  FJUNIOR 4105<br \/>  M30-39 3964<br \/>  M40-49 3319<br \/>  F 3306<br \/>  M70-74 3072<br \/>  F20-24 2522<br \/>  <\/code><br \/>  \u041c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e \u043f\u044f\u0442\u044c \u043b\u0435\u0442, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043c\u0443\u0436\u0447\u0438\u043d \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0436\u0435\u043d\u0449\u0438\u043d, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b <i>MPRO<\/i> \u0438 <i>FPRO<\/i>. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043d\u0430\u0448\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442: <\/p>\n<pre><code class=\"python\">ag = ['MPRO', 'M18-24', 'M25-29', 'M30-34', 'M35-39', 'M40-44', 'M45-49', 'M50-54', 'M55-59', 'M60-64',  'M65-69', 'M70-74', 'M75-79', 'M80-84', 'M85-90', 'FPRO', 'F18-24', 'F25-29', 'F30-34', 'F35-39', 'F40-44',   'F45-49', 'F50-54', 'F55-59', 'F60-64', 'F65-69', 'F70-74', 'F75-79', 'F80-84', 'F85-90'] #ag \u2013 age group <\/code><\/pre>\n<p>  \u042d\u0442\u0438\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0447\u0442\u0438 95% \u0432\u0441\u0435\u0445 \u0444\u0438\u043d\u0438\u0448\u0435\u0440\u043e\u0432.<\/p>\n<p>  \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043d\u0430\u043c \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b. \u041d\u043e \u043c\u044b \u043f\u043e\u0438\u0449\u0435\u043c \u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u043d\u0438\u0445 \u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0445\u043e\u0442\u044f \u0431\u044b \u0447\u0430\u0441\u0442\u044c. \u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043a \u0432\u0435\u0440\u0445\u043d\u0435\u043c\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u0438 \u0443\u0434\u0430\u043b\u0438\u043c \u043f\u0440\u043e\u0431\u0435\u043b\u044b. \u0412\u043e\u0442 \u0447\u0442\u043e \u043d\u0430\u0448\u043b\u043e\u0441\u044c:<br \/>  <code>['F25-29F', 'F30-34F', 'F30-34-34', 'F35-39F', 'F40-44F', 'F45-49F', 'F50-54F', 'F55-59F', 'FAG:FPRO', 'FK30-34', 'FK35-39', 'FK40-44', 'FK45-49', 'FOPEN50-54', 'FOPEN60-64', 'MAG:MPRO', 'MK30-34', 'MK30-39', 'MK35-39', 'MK40-44', 'MK40-49', 'MK50-59', 'M\u041c40-44', 'MM85-89', 'MOPEN25-29', 'MOPEN30-34', 'MOPEN35-39', 'MOPEN40-44', 'MOPEN45-49', 'MOPEN50-54', 'MOPEN70-74', 'MPRO:', 'MPROM', 'M0-44&quot;']<br \/>  <\/code><br \/>  \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0438\u0445 \u043a \u043d\u0430\u0448\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c. <\/p>\n<pre><code class=\"python\">fix = { 'F25-29F': 'F25-29', 'F30-34F' : 'F30-34', 'F30-34-34': 'F30-34', 'F35-39F': 'F35-39', 'F40-44F': 'F40-44', 'F45-49F': 'F45-49', 'F50-54F': 'F50-54', 'F55-59F': 'F55-59', 'FAG:FPRO': 'FPRO', 'FK30-34': 'F30-34',      'FK35-39': 'F35-39', 'FK40-44': 'F40-44', 'FK45-49': 'F45-49', 'FOPEN50-54': 'F50-54', 'FOPEN60-64': 'F60-64', 'MAG:MPRO': 'MPRO', 'MK30-34': 'M30-34', 'MK30-39': 'M30-39', 'MK35-39': 'M35-39', 'MK40-44': 'M40-44', 'MK40-49': 'M40-49', 'MK50-59': 'M50-59', 'M\u041c40-44': 'M40-44', 'MM85-89': 'M85-89', 'MOPEN25-29': 'M25-29', 'MOPEN30-34': 'M30-34', 'MOPEN35-39': 'M35-39', 'MOPEN40-44': 'M40-44', 'MOPEN45-49': 'M45-49', 'MOPEN50-54': 'M50-54', 'MOPEN70-74': 'M70- 74', 'MPRO:' :'MPRO', 'MPROM': 'MPRO', 'M0-44&quot;' : 'M40-44'} <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c\u0443 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u0443 <i>ar<\/i>, \u043d\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <i>group<\/i> \u0432 \u043d\u043e\u0432\u043e\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0443 <i>group raw<\/i>.<\/p>\n<pre><code class=\"python\">ar['group raw'] = ar['group'] <\/code><\/pre>\n<p>  \u0412 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>group<\/i> \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443. <\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u0441\u0442\u0430\u0440\u0430\u043d\u0438\u044f: <\/p>\n<pre><code class=\"python\">len(ar[(ar['group'] != ar['group raw'])&(ar['group']!='')]) <\/code><\/pre>\n<p>  <code><b>Out:<\/b> 273<br \/>  <\/code><br \/>  \u0421\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432. \u041d\u043e \u0432\u0435\u0434\u044c \u043d\u0435 \u0443\u0437\u043d\u0430\u0435\u0448\u044c, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u0448\u044c. <\/p>\n<p>  \u0412\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 10 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th><u>group<\/u><\/th>\n<th>place in group<\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th><u>group raw<\/u><\/th>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>566<\/td>\n<td>M<\/td>\n<td>Vladimir Kozar<\/td>\n<td>SVK<\/td>\n<td><u>M40-44<\/u><\/td>\n<td>8<\/td>\n<td>...<\/td>\n<td>SVK<\/td>\n<td><u>MOpen 40-44<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>8<\/td>\n<td>M<\/td>\n<td>HANNES COOL<\/td>\n<td>BEL<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>11<\/td>\n<td>...<\/td>\n<td>BEL<\/td>\n<td><u>MPRO M<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>445<\/td>\n<td>F<\/td>\n<td>Ileana Sodani<\/td>\n<td>USA<\/td>\n<td><u>F45-49<\/u><\/td>\n<td>4<\/td>\n<td>...<\/td>\n<td>USA<\/td>\n<td><u>F45-49 F<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>227<\/td>\n<td>F<\/td>\n<td>JARLINSKA Bozena<\/td>\n<td>POL<\/td>\n<td><u>F45-49<\/u><\/td>\n<td>2<\/td>\n<td>...<\/td>\n<td>POL<\/td>\n<td><u>FK45-49<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>440<\/td>\n<td>F<\/td>\n<td>Celine Orrigoni<\/td>\n<td>FRA<\/td>\n<td><u>F40-44<\/u><\/td>\n<td>6<\/td>\n<td>...<\/td>\n<td>FRA<\/td>\n<td><u>F40-44 F<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>325<\/td>\n<td>M<\/td>\n<td>Vladimir Eckert<\/td>\n<td>SVK<\/td>\n<td><u>M40-44<\/u><\/td>\n<td>6<\/td>\n<td>...<\/td>\n<td>SVK<\/td>\n<td><u>MOpen 40-44<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>139<\/td>\n<td>F<\/td>\n<td>ATRASZKIEWICZ Magda<\/td>\n<td>POL<\/td>\n<td><u>F40-44<\/u><\/td>\n<td>2<\/td>\n<td>...<\/td>\n<td>POL<\/td>\n<td><u>FK40-44<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>18<\/td>\n<td>M<\/td>\n<td>Marijn de Jonge<\/td>\n<td>NLD<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>18<\/td>\n<td>...<\/td>\n<td>NED<\/td>\n<td><u>Mpro<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>574<\/td>\n<td>M<\/td>\n<td>Luca Andalo<\/td>\n<td>ITA<\/td>\n<td><u>M40-44<\/u><\/td>\n<td>9<\/td>\n<td>...<\/td>\n<td>ITA<\/td>\n<td><u>MOpen 40-44<\/u><\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>67<\/td>\n<td>M<\/td>\n<td>URBANKIEWICZ Aleksandra<\/td>\n<td>POL<\/td>\n<td><u>M35-39<\/u><\/td>\n<td>1<\/td>\n<td>...<\/td>\n<td>POL<\/td>\n<td><u>MK35-39<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u0430, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0432 \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c <i>rd<\/i>.<\/p>\n<pre><code class=\"python\">pkl.dump(rd, open(r'D:\\tri\\details3.pkl', 'wb'))<\/code><\/pre>\n<p>  <\/p>\n<h3>\u0418\u043c\u044f<\/h3>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0439\u043c\u0435\u043c\u0441\u044f \u0438\u043c\u0435\u043d\u0430\u043c\u0438. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u043e 100 \u0438\u043c\u0435\u043d \u0441 \u0440\u0430\u0437\u043d\u044b\u0445 \u0433\u043e\u043d\u043e\u043a:<\/p>\n<pre><code class=\"python\">list(ar['name'].sample(100)) <\/code><\/pre>\n<p>  <code><b>Out: <\/b>['Case, Christine', 'Van der westhuizen, Wouter', 'Grace, Scott', 'Sader, Markus', 'Schuller, Gunnar', 'Juul-Andersen, Jeppe', 'Nelson, Matthew', '\u0417\u0430\u0431\u0443\u0433\u0438\u043d\u0430 \u0412\u0430\u043b\u0435\u0440\u0438\u044f \u0413\u0435\u043d\u043d\u0430\u0434\u044c\u0435\u0432\u043d\u0430', 'Westman, Pehr', 'Becker, Christoph', 'Bolton, Jarrad', 'Coto, Ricardo', 'Davies, Luke', 'Daniltchev, Alexandre', 'Escobar Labastida, Emmanuelle', 'Idzikowski, Jacek', 'Fairaislova Iveta', 'Fisher, Kulani', 'Didenko, Viktor', 'Osborne, Jane', 'Kadralinov, Zhalgas', 'Perkins, Chad', 'Caddell, Martha', 'Lynaire PARISH', 'Busing, Lynn', 'Nikitin, Evgeny', 'ANSON MONZON, ROBERTO', 'Kaub, Bernd', 'Bank, Morten', 'Kennedy, Ian', 'Kahl, Stephen', 'Vossough, Andreas', 'Gale, Karen', 'Mullally, Kristin', 'Alex FRASER', 'Dierkes, Manuela', 'Gillett, David', 'Green, Erica', 'Cunnew, Elliott', 'Sukk, Gaspar', 'Markina Veronika', 'Thomas KVARICS', 'Wu, Lewen', 'Van Enk, W.J.J', 'Escobar, Rosario', 'Healey, Pat', 'Scheef, Heike', 'Ancheta, Marlon', 'Heck, Andreas', 'Vargas Iii, Raul', 'Seferoglou, Maria', 'chris GUZMAN', 'Casey, Timothy', 'Olshanikov Konstantin', 'Rasmus Nerrand', 'Lehmann Bence', 'Amacker, Kirby', 'Parks, Chris', 'Tom, Troy', 'Karlsson, Ulf', 'Halfkann, Dorothee', 'Szabo, Gergely', 'Antipov Mikhail', 'Von Alvensleben, Alvo', 'Gruber, Peter', 'Leblanc, Jean-Philippe', 'Bouchard, Jean-Francois', 'Marchiotto MASSIMO', 'Green, Molly', 'Alder, Christoph', 'Morris, Huw', 'Deceur, Marc', 'Queenan, Derek', 'Krause, Carolin', 'Cockings, Antony', 'Ziehmer Chris', 'Stiene, John', 'Chmet Daniela', 'Chris RIORDAN', 'Wintle, Mel', '\u0411\u043e\u0440\u0438\u0441\u0451\u043d\u043e\u043a \u041f\u0430\u0432\u0435\u043b', 'GASPARINI CHRISTIAN', 'Westbrook, Christohper', 'Martens, Wim', 'Papson, Chris', 'Burdess, Shaun', 'Proctor, Shane', 'Cruzinha, Pedro', 'Hamard, Jacques', 'Petersen, Brett', 'Sahyoun, Sebastien', &quot;O'Connell, Keith&quot;, 'Symoshenko, Zhan', 'Luternauer, Jan', 'Coronado, Basil', 'Smith, Alex', 'Dittberner, Felix', 'N?sman, Henrik', 'King, Malisa', 'PUHLMANN Andre']<br \/>  <\/code><br \/>  \u0412\u0441\u0435 \u0441\u043b\u043e\u0436\u043d\u043e. \u0412\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439: <i>\u0418\u043c\u044f \u0424\u0430\u043c\u0438\u043b\u0438\u044f, \u0424\u0430\u043c\u0438\u043b\u0438\u044f \u0418\u043c\u044f, \u0424\u0430\u043c\u0438\u043b\u0438\u044f, \u0418\u043c\u044f, \u0424\u0410\u041c\u0418\u041b\u0418\u042f, \u0418\u043c\u044f<\/i> \u0438 \u0442. \u0434. \u0422\u043e \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a, \u0440\u0430\u0437\u043d\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0433\u0434\u0435-\u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u2014 \u0437\u0430\u043f\u044f\u0442\u0430\u044f. \u0422\u0430\u043a \u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u043c\u0430\u043b\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0434\u0435\u0442 \u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430. \u0422\u0430\u043c \u0442\u043e\u0436\u0435 \u043d\u0435\u0442 \u0435\u0434\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f, \u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b: <i>\u201c\u0424\u0430\u043c\u0438\u043b\u0438\u044f \u0418\u043c\u044f\u201d, \u201c\u0418\u043c\u044f \u0424\u0430\u043c\u0438\u043b\u0438\u044f\u201d, \u201c\u0418\u043c\u044f \u041e\u0442\u0447\u0435\u0441\u0442\u0432\u043e \u0424\u0430\u043c\u0438\u043b\u0438\u044f\u201d, \u201c\u0424\u0430\u043c\u0438\u043b\u0438\u044f \u0418\u043c\u044f \u041e\u0442\u0447\u0435\u0441\u0442\u0432\u043e\u201d<\/i>. \u0425\u043e\u0442\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0432 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u043e\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438. \u0418 \u0437\u0434\u0435\u0441\u044c, \u043a\u0441\u0442\u0430\u0442\u0438, \u0432\u0441\u0442\u0430\u0435\u0442 \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2013 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f. \u0415\u0449\u0435 \u043d\u0430\u0434\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u0430 \u043d\u0435\u0442, \u0437\u0430\u043f\u0438\u0441\u044c \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u0441\u043b\u043e\u0432\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043b\u0430\u0442\u0438\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0446\u0435\u0432 \u0438\u043c\u044f \u043f\u043b\u044e\u0441 \u0444\u0430\u043c\u0438\u043b\u0438\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0442\u0440\u0435\u0445 \u0438\u043b\u0438 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0441\u043b\u043e\u0432. \u0423 \u0433\u043e\u043b\u043b\u0430\u043d\u0434\u0446\u0435\u0432 \u0431\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 Van, \u0443 \u043a\u0438\u0442\u0430\u0439\u0446\u0435\u0432 \u0438 \u043a\u043e\u0440\u0435\u0439\u0446\u0435\u0432 \u0442\u043e\u0436\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0437 \u0442\u0440\u0435\u0445 \u0441\u043b\u043e\u0432. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0430\u0434\u043e \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0441\u043f\u0443\u0442\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u0440\u0435\u0431\u0443\u0441 \u0438 \u043f\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0438\u0442\u044c. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u043d\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u043c\u0435\u043d\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432 \u0434\u043b\u044f \u0432\u0441\u0435\u0445, \u043d\u043e \u0434\u0430\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b, \u043e\u0434\u043d\u0430\u043a\u043e, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>name raw<\/i>:<\/p>\n<pre><code class=\"python\">ar['name raw'] = ar['name'] <\/code><\/pre>\n<p>  \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u043d\u0430 \u043b\u0430\u0442\u0438\u043d\u0438\u0446\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0442. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043c\u043e\u0433\u0443\u0442 \u0432\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0438\u043c\u044f \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430. <\/p>\n<pre><code class=\"python\">set( ''.join(ar['name'].unique())) <\/code><\/pre>\n<p>  <code><b>Out: <\/b>[' ', '!', '&quot;', '#', '&', &quot;'&quot;, '(', ')', '*', '+', ',', '-', '.', '\/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '&gt;', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '|', '\\x7f', '\\xa0', '\u00a4', '\u00a6', '\u00a7', '', '\u00ab', '\\xad', '', '\u00b0', '\u00b1', '\u00b5', '\u00b6', '\u00b7', '\u00bb', '\u0401', '\u0406', '\u0410', '\u0411', '\u0412', '\u0413', '\u0414', '\u0415', '\u0416', '\u0417', '\u0418', '\u0419', '\u041a', '\u041b', '\u041c', '\u041d', '\u041e', '\u041f', '\u0420', '\u0421', '\u0422', '\u0423', '\u0424', '\u0425', '\u0426', '\u0427', '\u0428', '\u0429', '\u042b', '\u042c', '\u042d', '\u042e', '\u042f', '\u0430', '\u0431', '\u0432', '\u0433', '\u0434', '\u0435', '\u0436', '\u0437', '\u0438', '\u0439', '\u043a', '\u043b', '\u043c', '\u043d', '\u043e', '\u043f', '\u0440', '\u0441', '\u0442', '\u0443', '\u0444', '\u0445', '\u0446', '\u0447', '\u0448', '\u0449', '\u044a', '\u044b', '\u044c', '\u044d', '\u044e', '\u044f', '\u0451', '\u0454', '\u0456', '\u045e', '\u2013', '\u2014', '\u2018', '\u2019', '\u201a', '\u201c', '\u201d', '\u201e', '\u2020', '\u2021', '\u2026', '\u2030', '\u203a', '']<br \/>  <\/code><br \/>  \u0427\u0435\u0433\u043e \u0442\u0443\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0442! \u041f\u043e\u043c\u0438\u043c\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u0443\u043a\u0432 \u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432, \u0435\u0449\u0435 \u043a\u0443\u0447\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0438\u043a\u043e\u0432\u0438\u043d\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u0418\u0437 \u043d\u0438\u0445 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u043c\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043d\u0435 \u043f\u043e \u043e\u0448\u0438\u0431\u043a\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u2018.\u2019, \u0434\u0435\u0444\u0438\u0441 \u2018-\u2019 \u0438 \u0430\u043f\u043e\u0441\u0442\u0440\u043e\u0444 \u201c\u2019\u201d. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u0431\u044b\u043b\u043e \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043e \u0447\u0442\u043e \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0445 \u0438 \u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0438\u0445 \u0438\u043c\u0435\u043d\u0430\u0445 \u0438 \u0444\u0430\u043c\u0438\u043b\u0438\u044f\u0445 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u043d\u0430\u043a \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u2018?\u2019. \u041e\u043d\u0438, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442 \u0437\u0434\u0435\u0441\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0438\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u043b\u0430\u0442\u0438\u043d\u0438\u0446\u044b \u2013 \u2018?\u2019, \u2018a\u2019, \u2018o\u2019, \u2018u\u2019,? \u0438 \u0434\u0440. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b:<br \/>  <code>Pierre-Alexandre Petit, Jean-louis Lafontaine, Faris Al-Sultan, Jean-Francois Evrard, Paul O'Mahony, Aidan O'Farrell, John O'Neill, Nick D'Alton, Ward D'Hulster, Hans P.J. Cami, Luis E. Benavides, Maximo Jr. Rueda, Prof. Dr. Tim-Nicolas Korf, Dr. Boris Scharlowsk, Eberhard Gro?mann, Magdalena Wei?, Gro?er Axel, Meyer-Szary Krystian, Morten Halkj?r, RASMUSSEN S?ren Balle<br \/>  <\/code><br \/>  \u0417\u0430\u043f\u044f\u0442\u0430\u044f, \u0445\u043e\u0442\u044c \u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0435\u043c, \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u043c \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0433\u043e\u043d\u043a\u0430\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u043e\u0436\u0435 \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u0432 \u0440\u0430\u0437\u0440\u044f\u0434 \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445. \u0426\u0438\u0444\u0440\u044b \u0442\u043e\u0436\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u0438\u043c\u0435\u043d\u0430\u0445. <\/p>\n<pre><code class=\"python\">bs = [s for s in symbols if not (s.isalpha() or s in &quot; . - ' ? ,&quot;)] #bs \u2013 bad symbols  bs <\/code><\/pre>\n<p>  <code><b>Out: <\/b>['!', '&quot;', '#', '&', '(', ')', '*', '+', '\/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '&gt;', '@', '[', '\\\\', ']', '^', '_', '`', '|', '\\x7f', '\\xa0', '\u00a4', '\u00a6', '\u00a7', '', '\u00ab', '\\xad', '', '\u00b0', '\u00b1', '\u00b6', '\u00b7', '\u00bb', '\u2013', '\u2014', '\u2018', '\u2019', '\u201a', '\u201c', '\u201d', '\u201e', '\u2020', '\u2021', '\u2026', '\u2030', '\u203a', '']<br \/>  <\/code><br \/>  \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0443\u0431\u0435\u0440\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044b, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0432 \u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u044f\u0445 \u043e\u043d\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442:<\/p>\n<pre><code class=\"python\">for s in bs:     ar['name'] = ar['name'].str.replace(s, '')  corr = ar[ar['name'] != ar['name raw']] <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 2 184, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u043e 0.15% \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u2013 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e. \u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u043e \u043d\u0430 100 \u0438\u0437 \u043d\u0438\u0445:<\/p>\n<pre><code class=\"python\">list(corr['name raw'].sample(100)) <\/code><\/pre>\n<p>  <code><b>Out:<\/b> ['Scha\u00b6ffl, Ga?nter', 'Howard, Brian &', 'Chapiewski, Guilherme (Gc)', 'Derkach 1svd_mail_ru', 'Parker H1 Lauren', 'Leal le?n, Yaneri', 'TencA, David', 'Cortas La?pez, Alejandro', 'Strid, Bja\u00b6rn', '(Crutchfield) Horan, Katie', 'Vigneron, Jean-Michel.Vigneron@gmail.Com', '\u041c\u041e\u0428\u041a\u041e\u0412\\xa0\u0418\u0432\u0430\u043d', 'Telahr, J\u2020rgen', 'St\u201drmer, Melanie', 'Nagai B1 Keiji', 'Rinc?n, Mariano', 'Arkalaki, Angela (Evangelia)', 'Barbaro B1 Bonin Anna G:Charlotte', 'Ra?esch, Ja\u00b6rg', &quot;CAVAZZI NICCOLO\\\\'&quot;, 'D\u201enzel, Thomas', 'Ziska, Steffen (Gerhard)', 'Kobilica B1 Alen', 'Mittelholcz, Bala', 'Jimanez Aguilar, Juan Antonio', 'Achenza H1 Giovanni', 'Reppe H2 Christiane', 'Filipovic B2 Lazar', 'Machuca Ka?hnel, Ruban Alejandro', 'Gellert (Silberprinz), Christian', 'Smith (Guide), Matt', 'Lenatz H1 Benjamin', 'Da\u00b6llinger, Christian', 'Mc Carthy B1 Patrick Donnacha G:Bryan', 'Fa\u00b6llmer, Chris', 'Warner (Rivera), Lisa', 'Wang, Ruijia (Ray)', 'Mc Carthy B1 Donnacha', 'Jones, Nige (Paddy)', 'Sch\u201dler, Christoph', '\u041d\u0415\u0414\u041e\u0428\u0418\u0422\u041e\u0412\\xa0\u0414\u043c\u0438\u0442\u0440\u0438\u0439', 'Holthaus, Adelhard (Allard)', 'Mi;Arro, Ana', 'Dr: Koch Stefan', '\u041c\u041e\u0428\u041a\u041e\u0412\\xa0\u042e\u0440\u0438\u0439', '\u0426\u0423\u0411\u0415\u0420\u0410\\xa0\u041c\u0430\u043a\u0441\u0438\u043c', 'Ziska, Steffen (Gerhard)', 'Albarraca\\xadn Gonza?lez, Juan Francisco', 'Ha\u00b6fling, Imke', 'Johnston, Eddie (Edwin)', 'Mulcahy, Bob (James)', 'Gottschalk, Bj\u201drn', '\u0413\u0423\u0429\u0418\u041d\\xa0\u0414\u043c\u0438\u0442\u0440\u0438\u0439', 'Gretsch H2 Kendall', 'Scorse, Christopher (Chris)', 'Kiel\u201abasa, Pawel', 'Kalan, Magnus', 'Roderick &quot;eric&quot; SIMBULAN', 'Russell;, Mark', 'ROPES AND GRAY TEAM 3', 'Andrade, H?\u00a6CTOR DANIEL', 'Landmann H2 Joshua', 'Reyes Rodra\\xadguez, Aithami', 'Ziska, Steffen (Gerhard)', 'Ziska, Steffen (Gerhard)', 'Heuza, Pierre', 'Snyder B1 Riley Brad G:Colin', 'Feldmann, Ja\u00b6rg', 'Beveridge H1 Nic', 'FAGES`, perrine', 'Frank&quot;, Dieter', 'Saarema\u00a4el, Indrek', 'Betancort Morales, Arida\u2013y', 'Ridderberg, Marie_Louise', '\u0417\u0410\u0419\u0426\u0415\u0412\\xa0\u0410\u043d\u0434\u0440\u0435\u0439', 'Ka\u00b6nig, Johannes', 'W Van(der Klugt', 'Ziska, Steffen (Gerhard)', 'Johnson, Nick26', 'Heinz JOHNER03', 'Ga\u00b6rg, Andra', 'Maruo B2 Atsuko', 'Moral Pedrero H1 Eva Maria', '\u041a\u0423\u0422\u0410\u0421\u041e\u0412\\xa0\u0421\u0435\u0440\u0433\u0435\u0439', 'MATUS SANTIAGO Osc1r', 'Stenbrink, Bja\u00b6rn', 'Wangkhan, Sm1.Thaworn', 'Pullerits, Ta\u00b6nu', 'Clausner, 8588294149', 'Castro Miranda, Josa Ignacio', 'La\u00b6fgren, Pontuz', 'Brown, Jann ( Janine )', 'Ziska, Steffen (Gerhard)', 'Koay, Sa\u00b6ren', 'Ba\u00b6hm, Heiko', 'Oleksiuk B2 Vita', 'G Van(de Grift', 'Scha\u00b6neborn, Guido', 'Mandez, A?lvaro', 'Garca\\xada Fla?rez, Daniel']<br \/>  <\/code><br \/>  \u0412 \u0438\u0442\u043e\u0433\u0435, \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u043b\u0433\u0438\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439, \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e: \u0432\u0441\u0435 \u0431\u0443\u043a\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0431\u0435\u043b, \u0434\u0435\u0444\u0438\u0441, \u0430\u043f\u043e\u0441\u0442\u0440\u043e\u0444 \u0438 \u0437\u043d\u0430\u043a \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0437\u0430\u043f\u044f\u0442\u0443\u044e, \u0442\u043e\u0447\u043a\u0443 \u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u2018\\xa0\u2019 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0431\u0435\u043b\u044b, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c.<\/p>\n<pre><code class=\"python\">ar['name'] = ar['name raw']  for s in symbols:     if s.isalpha() or s in &quot; - ? '&quot;:                 continue             if s in &quot;.,\\xa0&quot;:         ar['name'] = ar['name'].str.replace(s, ' ')            else:         ar['name'] = ar['name'].str.replace(s, '') <\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0438\u0437\u0431\u0430\u0432\u0438\u043c\u0441\u044f \u043e\u0442 \u043b\u0438\u0448\u043d\u0438\u0445 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432:<\/p>\n<pre><code class=\"python\">ar['name'] = ar['name'].str.split().str.join(' ') ar['name'] = ar['name'].str.strip() # \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<\/p>\n<pre><code class=\"python\">ar.loc[corr.index].sample(10) <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th><u>name<\/u><\/th>\n<th>country<\/th>\n<th>...<\/th>\n<th><u>name raw<\/u><\/th>\n<\/tr>\n<tr>\n<td>63<\/td>\n<td>64<\/td>\n<td>M<\/td>\n<td><u>Curzillat B MARANO Annouck GJulie<\/u><\/td>\n<td>FRA<\/td>\n<td>...<\/td>\n<td><u>Curzillat B1 MARANO Annouck G:Julie<\/u><\/td>\n<\/tr>\n<tr>\n<td>425<\/td>\n<td>426<\/td>\n<td>M<\/td>\n<td><u>Naranjo Quintero Cndido<\/u><\/td>\n<td>ESP<\/td>\n<td>...<\/td>\n<td><u>Naranjo Quintero, C\u2021ndido<\/u><\/td>\n<\/tr>\n<tr>\n<td>1347<\/td>\n<td>1348<\/td>\n<td>F<\/td>\n<td><u>Chang Margaret Peggy<\/u><\/td>\n<td>USA<\/td>\n<td>...<\/td>\n<td><u>Chang, Margaret (Peggy)<\/u><\/td>\n<\/tr>\n<tr>\n<td>790<\/td>\n<td>791<\/td>\n<td>M<\/td>\n<td><u>Gonzalez Ruben<\/u><\/td>\n<td>PRI<\/td>\n<td>...<\/td>\n<td><u>Gonzalez`, Ruben<\/u><\/td>\n<\/tr>\n<tr>\n<td>1562<\/td>\n<td>1563<\/td>\n<td>M<\/td>\n<td><u>Garcia Hernandez Elias<\/u><\/td>\n<td>MEX<\/td>\n<td>...<\/td>\n<td><u>Garcia Hernandez\/, Elias<\/u><\/td>\n<\/tr>\n<tr>\n<td>50<\/td>\n<td>51<\/td>\n<td>M<\/td>\n<td><u>Reppe H Christiane<\/u><\/td>\n<td>DEU<\/td>\n<td>...<\/td>\n<td><u>Reppe H2 Christiane<\/u><\/td>\n<\/tr>\n<tr>\n<td>528<\/td>\n<td>529<\/td>\n<td>M<\/td>\n<td><u>Ho Shihken<\/u><\/td>\n<td>TWN<\/td>\n<td>...<\/td>\n<td><u>Ho, Shih\u2014ken<\/u><\/td>\n<\/tr>\n<tr>\n<td>819<\/td>\n<td>820<\/td>\n<td>M<\/td>\n<td><u>Elmously A R Abdelrahman<\/u><\/td>\n<td>EGY<\/td>\n<td>...<\/td>\n<td><u>Elmously, A.R. (Abdelrahman)<\/u><\/td>\n<\/tr>\n<tr>\n<td>249<\/td>\n<td>250<\/td>\n<td>F<\/td>\n<td><u>boyer Isabelle<\/u><\/td>\n<td>THA<\/td>\n<td>...<\/td>\n<td><u>`boyer, Isabelle<\/u><\/td>\n<\/tr>\n<tr>\n<td>744<\/td>\n<td>745<\/td>\n<td>M<\/td>\n<td><u>Garcaa Morales Pedro Luciano<\/u><\/td>\n<td>ESP<\/td>\n<td>...<\/td>\n<td><u>Garca\u00aca Morales, Pedro Luciano<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0411\u044b\u043b\u043e \u0442\u0430\u043a \u0436\u0435 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043e, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438\u043c\u0435\u043d\u0430, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 \u0437\u043d\u0430\u043a\u043e\u0432 \u0432\u043e\u043f\u0440\u043e\u0441\u0430.<\/p>\n<pre><code class=\"python\">qmon = ar[(ar['name'].str.replace('?', '').str.strip() == '')&(ar['name']!='')] #qmon \u2013 question mark only names <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u0445 3 429. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th><u>name<\/u><\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>place in group<\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th>group raw<\/th>\n<th><u>name raw<\/u><\/th>\n<\/tr>\n<tr>\n<td>818<\/td>\n<td>819<\/td>\n<td>M<\/td>\n<td><u>???? ???<\/u><\/td>\n<td>JPN<\/td>\n<td>M45-49<\/td>\n<td>177<\/td>\n<td>...<\/td>\n<td>JPN<\/td>\n<td>M45-49<\/td>\n<td><u>????, ???<\/u><\/td>\n<\/tr>\n<tr>\n<td>1101<\/td>\n<td>1102<\/td>\n<td>M<\/td>\n<td><u>?? ??<\/u><\/td>\n<td>JPN<\/td>\n<td>M50-54<\/td>\n<td>159<\/td>\n<td>...<\/td>\n<td>JPN<\/td>\n<td>M50-54<\/td>\n<td><u>??, ??<\/u><\/td>\n<\/tr>\n<tr>\n<td>162<\/td>\n<td>163<\/td>\n<td>M<\/td>\n<td><u>? ??<\/u><\/td>\n<td>CHN<\/td>\n<td>M30-34<\/td>\n<td>22<\/td>\n<td>...<\/td>\n<td>CHN<\/td>\n<td>M30-34<\/td>\n<td><u>?, ??<\/u><\/td>\n<\/tr>\n<tr>\n<td>1271<\/td>\n<td>1272<\/td>\n<td>F<\/td>\n<td><u>???? ????<\/u><\/td>\n<td>JPN<\/td>\n<td>F50-54<\/td>\n<td>15<\/td>\n<td>...<\/td>\n<td>JPN<\/td>\n<td>F50-54<\/td>\n<td><u>????, ????<\/u><\/td>\n<\/tr>\n<tr>\n<td>552<\/td>\n<td>553<\/td>\n<td>M<\/td>\n<td><u>??? ??<\/u><\/td>\n<td>JPN<\/td>\n<td>M25-29<\/td>\n<td>30<\/td>\n<td>...<\/td>\n<td>JPN<\/td>\n<td>M25-29<\/td>\n<td><u>???, ??<\/u><\/td>\n<\/tr>\n<tr>\n<td>423<\/td>\n<td>424<\/td>\n<td>M<\/td>\n<td><u>??? ????<\/u><\/td>\n<td>JPN<\/td>\n<td>M55-59<\/td>\n<td>24<\/td>\n<td>...<\/td>\n<td>JPN<\/td>\n<td>M55-59<\/td>\n<td><u>???, ????<\/u><\/td>\n<\/tr>\n<tr>\n<td>936<\/td>\n<td>937<\/td>\n<td>F<\/td>\n<td><u>?? ??<\/u><\/td>\n<td>JPN<\/td>\n<td>F50-54<\/td>\n<td>7<\/td>\n<td>...<\/td>\n<td>JPN<\/td>\n<td>F50-54<\/td>\n<td><u>??, ??<\/u><\/td>\n<\/tr>\n<tr>\n<td>244<\/td>\n<td>245<\/td>\n<td>M<\/td>\n<td><u>? ??<\/u><\/td>\n<td>KOR<\/td>\n<td>M50-54<\/td>\n<td>30<\/td>\n<td>...<\/td>\n<td>KOR<\/td>\n<td>M50-54<\/td>\n<td><u>?, ??<\/u><\/td>\n<\/tr>\n<tr>\n<td>627<\/td>\n<td>628<\/td>\n<td>M<\/td>\n<td><u>? ?<\/u><\/td>\n<td>CHN<\/td>\n<td>M40-44<\/td>\n<td>94<\/td>\n<td>...<\/td>\n<td>CHN<\/td>\n<td>M40-44<\/td>\n<td><u>?, ?<\/u><\/td>\n<\/tr>\n<tr>\n<td>194<\/td>\n<td>195<\/td>\n<td>M<\/td>\n<td><u>?????? ?????<\/u><\/td>\n<td>RUS<\/td>\n<td><\/td>\n<td>188<\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>M<\/td>\n<td><u>?????? ?????<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u043c\u0438 \u0438\u0437 \u043e\u0434\u043d\u0438\u0445 \u043b\u0438\u0448\u044c \u0437\u043d\u0430\u043a\u043e\u0432 \u0432\u043e\u043f\u0440\u043e\u0441\u0430, \u043e\u043d\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0439 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u0430 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u0438\u0445 \u0432\u0441\u0435 \u043d\u0430 \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c. <\/p>\n<pre><code class=\"python\">ar.loc[qmon.index, 'name'] = '' <\/code><\/pre>\n<p>  \u0412\u0441\u0435\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0433\u0434\u0435 \u0438\u043c\u044f \u2013 \u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c 3 454. \u041d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u2014 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0435\u043c. \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0442 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0435\u0440\u0432\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0432\u0441\u0435 \u043a \u043d\u0438\u0436\u043d\u0435\u043c\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0432\u043e\u0439\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443. <\/p>\n<pre><code class=\"python\">ar['name'] = ar['name'].str.lower() <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u0438\u043a:<\/p>\n<pre><code class=\"python\">trans = {'\u0430':'a', '\u0431':'b', '\u0432':'v', '\u0433':'g', '\u0434':'d', '\u0435':'e', '\u0451':'e', '\u0436':'zh', '\u0437':'z',  '\u0438':'i', '\u0439':'y', '\u043a':'k', '\u043b':'l', '\u043c':'m', '\u043d':'n', '\u043e':'o', '\u043f':'p', '\u0440':'r', '\u0441':'s', '\u0442':'t', '\u0443':'u', '\u0444':'f', '\u0445':'kh', '\u0446':'ts', '\u0447':'ch', '\u0448':'sh', '\u0449':'shch', '\u044c':'', '\u044b':'y', '\u044a':'', '\u044d':'e', '\u044e':'yu', '\u044f':'ya', '\u0454':'e', '\u0456': 'i','\u045e':'w','\u00b5':'m'} <\/code><\/pre>\n<p>  \u0412 \u043d\u0435\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043f\u0430\u043b\u0438 \u0431\u0443\u043a\u0432\u044b \u0438\u0437 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u044b \u2014 <i>&#8216;\u0454&#8217;, &#8216;\u0456&#8217;, &#8216;\u045e&#8217;<\/i>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0431\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0438 \u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0430\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0430\u044f \u0431\u0443\u043a\u0432\u0430 <i>&#8216;\u00b5&#8217;<\/i>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435:<\/p>\n<pre><code class=\"python\">for s in trans:     ar['name'] = ar['name'].str.replace(s, trans[s]) <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0438\u0437 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043d\u0438\u0436\u043d\u0435\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043c \u0432\u0441\u0435 \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u0433\u0434\u0435 \u0438\u043c\u044f \u0438 \u0444\u0430\u043c\u0438\u043b\u0438\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0443\u043a\u0432\u044b:<\/p>\n<pre><code class=\"python\">ar['name'] = ar['name'].str.title() <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<\/p>\n<pre><code class=\"python\">ar[ar['name raw'].str.lower().str[0].isin(trans.keys())].sample(10) <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th><u>name<\/u><\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th>name raw<\/th>\n<\/tr>\n<tr>\n<td>99<\/td>\n<td>100<\/td>\n<td>M<\/td>\n<td><u>Nikolay Golovkin<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0413\u043e\u043b\u043e\u0432\u043a\u0438\u043d<\/td>\n<\/tr>\n<tr>\n<td>95<\/td>\n<td>96<\/td>\n<td>M<\/td>\n<td><u>Maksim Vasilevich Chubakov<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u041c\u0430\u043a\u0441\u0438\u043c \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432\u0438\u0447 \u0427\u0443\u0431\u0430\u043a\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td>325<\/td>\n<td>326<\/td>\n<td>F<\/td>\n<td><u>Ganieva Aygul<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u0413\u0430\u043d\u0438\u0435\u0432\u0430 \u0410\u0439\u0433\u0443\u043b\u044c<\/td>\n<\/tr>\n<tr>\n<td>661<\/td>\n<td>662<\/td>\n<td>M<\/td>\n<td><u>Maksut Nizamutdinov<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u041c\u0430\u043a\u0441\u0443\u0442 \u041d\u0438\u0437\u0430\u043c\u0443\u0442\u0434\u0438\u043d\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td>356<\/td>\n<td>357<\/td>\n<td>F<\/td>\n<td><u>Kolobanova Svetlana<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u041a\u043e\u043b\u043e\u0431\u0430\u043d\u043e\u0432\u0430 \u0421\u0432\u0435\u0442\u043b\u0430\u043d\u0430<\/td>\n<\/tr>\n<tr>\n<td>117<\/td>\n<td>118<\/td>\n<td>M<\/td>\n<td><u>Guskov Vladislav<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u0413\u0443\u0441\u044c\u043a\u043e\u0432 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432<\/td>\n<\/tr>\n<tr>\n<td>351<\/td>\n<td>352<\/td>\n<td>M<\/td>\n<td><u>Kolesnikov Dmitriy<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u041a\u043e\u043b\u0435\u0441\u043d\u0438\u043a\u043e\u0432 \u0414\u043c\u0438\u0442\u0440\u0438\u0439<\/td>\n<\/tr>\n<tr>\n<td>92<\/td>\n<td>93<\/td>\n<td>M<\/td>\n<td><u>Kuznetsov Oleg<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u041a\u0443\u0437\u043d\u0435\u0446\u043e\u0432 \u041e\u043b\u0435\u0433<\/td>\n<\/tr>\n<tr>\n<td>50<\/td>\n<td>51<\/td>\n<td>M<\/td>\n<td><u>Khoraykin Maksim<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u0425\u043e\u0440\u0430\u0439\u043a\u0438\u043d \u041c\u0430\u043a\u0441\u0438\u043c<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>7<\/td>\n<td>M<\/td>\n<td><u>Brylev Aleksey<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>\u0411\u0440\u044b\u043b\u0435\u0432 \u0410\u043b\u0435\u043a\u0441\u0435\u0439<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b:<\/p>\n<pre><code class=\"python\">set( ''.join(ar['name'].unique())) <\/code><\/pre>\n<p>  <code><b>Out:<\/b> [' ', &quot;'&quot;, '-', '?', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']<br \/>  <\/code><br \/>  \u0412\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u0441\u043d\u0443\u043b\u0438\u0441\u044c 1 253 882 \u0438\u043b\u0438 89% \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u0441\u043d\u0438\u0437\u0438\u043b\u043e\u0441\u044c \u0441 660 207 \u0434\u043e 599 186, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0430 61 \u0442\u044b\u0441\u044f\u0447\u0443 \u0438\u043b\u0438 \u043f\u043e\u0447\u0442\u0438 \u043d\u0430 10 %. \u0417\u0434\u043e\u0440\u043e\u0432\u043e! C\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432 \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 ar \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 <i>rd<\/i>.<\/p>\n<pre><code class=\"python\">pkl.dump(rd, open(r'D:\\tri\\details4.pkl', 'wb')) <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a. \u0422\u043e \u0435\u0441\u0442\u044c \u0447\u0442\u043e \u0431\u044b \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438\u043c\u0435\u043b\u0438 \u0432\u0438\u0434 \u2013 <i>\u0418\u043c\u044f \u0424\u0430\u043c\u0438\u043b\u0438\u044f<\/i> \u0438\u043b\u0438 <i>\u0424\u0430\u043c\u0438\u043b\u0438\u044f \u0418\u043c\u044f<\/i>. \u041a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u2013 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c. \u041f\u0440\u0430\u0432\u0434\u0430 \u043f\u043e\u043c\u0438\u043c\u043e \u0438\u043c\u0435\u043d\u0438 \u0438 \u0444\u0430\u043c\u0438\u043b\u0438\u0438 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u0445 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0435\u0449\u0435 \u0438 \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u0430. \u0418 \u043c\u043e\u0436\u0435\u0442 \u0442\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u0445 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u2013 \u0433\u0434\u0435-\u0442\u043e \u0441 \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u043e\u043c, \u0433\u0434\u0435-\u0442\u043e \u0431\u0435\u0437. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u0448\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u0430. \u041e\u0442\u0447\u0435\u0441\u0442\u0432\u0430 \u0443 \u043c\u0443\u0436\u0447\u0438\u043d \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u043c\u0435\u044e\u0442 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 <i>\u00ab\u0432\u0438\u0447\u00bb<\/i>, \u0430 \u0443 \u0436\u0435\u043d\u0449\u0438\u043d \u2014 <i>\u00ab\u0432\u043d\u0430\u00bb<\/i>. \u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u2013 <i>\u0418\u043b\u044c\u0438\u0447, \u0418\u043b\u044c\u0438\u043d\u0438\u0447\u043d\u0430, \u041d\u0438\u043a\u0438\u0442\u0438\u0447, \u041d\u0438\u043a\u0438\u0442\u0438\u0447\u043d\u0430<\/i>. \u041f\u0440\u0430\u0432\u0434\u0430 \u0442\u0430\u043a\u0438\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e. \u041a\u0430\u043a \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043e \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u043c\u0435\u043d \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u043e\u0442\u0447\u0435\u0441\u0442\u0432, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0433\u043e\u043d\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 <i>\u00abvich\u00bb<\/i> \u0438 <i>\u00abvna\u00bb<\/i> \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>name<\/i> \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0438\u0445 \u0441 \u043e\u0431\u0449\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435. \u0415\u0441\u043b\u0438 \u044d\u0442\u0438 \u0447\u0438\u0441\u043b\u0430 \u0431\u043b\u0438\u0437\u043a\u0438, \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0441\u0442\u044c, \u0430 \u0438\u043d\u0430\u0447\u0435 \u043d\u0435\u0442. \u0418\u0441\u043a\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0433\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043d\u0435\u0440\u0430\u0437\u0443\u043c\u043d\u043e, \u0442.\u043a. \u0434\u0430\u0436\u0435 \u0432 \u0433\u043e\u043d\u043a\u0430\u0445, \u0433\u0434\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u0430 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0446\u044b, \u0438 \u0438\u0445 \u0437\u0430\u043f\u0438\u0448\u0443\u0442 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e. \u0421\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0442\u0430\u043a, \u0447\u0442\u043e \u0443 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0437\u0430\u0431\u044b\u043b \u0438\u043b\u0438 \u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u043e. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0435\u0441\u0442\u044c \u0432\u0435\u0434\u044c \u0438 \u0444\u0430\u043c\u0438\u043b\u0438\u0438 \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430 \u00abvich\u00bb, \u0438\u0445 \u043c\u043d\u043e\u0433\u043e \u0432 \u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u0438\u0438, \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0430\u0445 \u0441 \u044f\u0437\u044b\u043a\u0430\u043c\u0438 \u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0442. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0434\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0448\u0430\u043d\u0441 \u0443\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0435\u0441\u0442\u044c \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u0430, \u043d\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043d \u0443\u0436\u0435 \u043d\u0430 \u043b\u0430\u0442\u0438\u043d\u0438\u0446\u0435. \u0422\u0430\u043a \u0447\u0442\u043e \u0432\u0441\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0447\u0438\u0441\u043b\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 <i>\u00abvich\u00bb<\/i> \u0438 <i>\u00abvna\u00bb<\/i> \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>name<\/i> \u0431\u043e\u043b\u044c\u0448\u0435 50% \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435. <\/p>\n<pre><code class=\"python\">wp = {} #wp \u2013 with patronymic   for e in rd:     nvich = (''.join(rd[e]['name'])).count('vich')      nvna = (''.join(rd[e]['name'])).count('vna')     if nvich + nvna &gt; 0.5*len(rd[e]):         wp[e] = rd[e] <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 29. \u0412\u043e\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445: <br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>...<\/th>\n<th>name raw<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>M<\/td>\n<td>Yaroslav <u>Stanislavovich<\/u> Pavlishchev<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u042f\u0440\u043e\u0441\u043b\u0430\u0432 \u0421\u0442\u0430\u043d\u0438\u0441\u043b\u0430\u0432\u043e\u0432\u0438\u0447 \u041f\u0430\u0432\u043b\u0438\u0449\u0435\u0432<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<td>Vladimir <u>Vasilevich<\/u> Perezhigin<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432\u0438\u0447 \u041f\u0435\u0440\u0435\u0436\u0438\u0433\u0438\u043d<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>3<\/td>\n<td>M<\/td>\n<td>Vladislav <u>Evgenevich<\/u> Litvinchuk<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0415\u0432\u0433\u0435\u043d\u044c\u0435\u0432\u0438\u0447 \u041b\u0438\u0442\u0432\u0438\u043d\u0447\u0443\u043a<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>4<\/td>\n<td>M<\/td>\n<td>Sergey <u>Gennadevich<\/u> Gavrilenko<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0421\u0435\u0440\u0433\u0435\u0439 \u0413\u0435\u043d\u043d\u0430\u0434\u044c\u0435\u0432\u0438\u0447 \u0413\u0430\u0432\u0440\u0438\u043b\u0435\u043d\u043a\u043e<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>5<\/td>\n<td>M<\/td>\n<td>Ivan <u>Markovich<\/u> Markin<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0418\u0432\u0430\u043d \u041c\u0430\u0440\u043a\u043e\u0432\u0438\u0447 \u041c\u0430\u0440\u043a\u0438\u043d<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>6<\/td>\n<td>M<\/td>\n<td>Nikolay <u>Evgenevich<\/u> Sokolov<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>Nikolay Evgenevich Sokolov<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>7<\/td>\n<td>M<\/td>\n<td>Aram <u>Pavlovich<\/u> Kukhtiev<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0410\u0440\u0430\u043c \u041f\u0430\u0432\u043b\u043e\u0432\u0438\u0447 \u041a\u0443\u0445\u0442\u0438\u0435\u0432<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>8<\/td>\n<td>M<\/td>\n<td>Andrey <u>Anatolevich<\/u> Andreev<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0410\u043d\u0434\u0440\u0435\u0439 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u0438\u0447 \u0410\u043d\u0434\u0440\u0435\u0435\u0432<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>9<\/td>\n<td>M<\/td>\n<td>Denis <u>Valerevich<\/u> Bulgakov<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0414\u0435\u043d\u0438\u0441 \u0412\u0430\u043b\u0435\u0440\u044c\u0435\u0432\u0438\u0447 \u0411\u0443\u043b\u0433\u0430\u043a\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>10<\/td>\n<td>M<\/td>\n<td>Aleksandr <u>Ivanovich<\/u> Kuts<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447 \u041a\u0443\u0446\u044c<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041f\u0440\u0438\u0447\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u043e 50% \u0432\u0437\u044f\u0442\u044c 20% \u0438\u043b\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 70% \u2014 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f, \u0431\u0443\u0434\u0443\u0442 \u0432\u0441\u0435 \u0442\u0435 \u0436\u0435 29. \u0417\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043c\u0435\u043d\u044c\u0448\u0435 20% \u2014 \u044d\u0444\u0444\u0435\u043a\u0442 \u0444\u0430\u043c\u0438\u043b\u0438\u0439, \u0431\u043e\u043b\u044c\u0448\u0435 70% \u2014 \u044d\u0444\u0444\u0435\u043a\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u0435\u0437 \u043e\u0442\u0447\u0435\u0441\u0442\u0432. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0432 \u0441\u0442\u0440\u0430\u043d\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0432\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e 25 \u0438\u0437 \u043d\u0438\u0445 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438, 4 \u0432 \u0410\u0431\u0445\u0430\u0437\u0438\u0438. <\/p>\n<p>  \u0414\u0432\u0438\u0436\u0435\u043c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435. \u0411\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u0442\u0440\u0435\u043c\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0442\u0435, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e) \u0444\u0430\u043c\u0438\u043b\u0438\u044f, \u0438\u043c\u044f, \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u043e. <\/p>\n<pre><code class=\"python\">sum_n3w = 0 # sum name of 3 words sum_nnot3w = 0 # sum name not of 3 words  for e in wp:      sum_n3w += len([n for n in wp[e]['name'] if len(n.split()) == 3])     sum_nnot3w += len(wp[e]) - n3w <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u2013 86 %. \u0422\u0435\u043f\u0435\u0440\u044c \u0442\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0440\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 <i>name0, name1, name2<\/i>:<\/p>\n<pre><code class=\"python\">for e in wp:     ind3 = [i for i in rd[e].index if len(rd[e].loc[i,'name'].split()) == 3]     rd[e]['name0'] = ''     rd[e]['name1'] = ''     rd[e]['name2'] = ''     rd[e].loc[ind3, 'name0'] = rd[e].loc[ind3,'name'].str.split().str[0]     rd[e].loc[ind3, 'name1'] = rd[e].loc[ind3,'name'].str.split().str[1]     rd[e].loc[ind3, 'name2'] = rd[e].loc[ind3,'name'].str.split().str[2] <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043a \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>name<\/th>\n<th><u>name0<\/u><\/th>\n<th><u>name1<\/u><\/th>\n<th><u>name2<\/u><\/th>\n<th>...<\/th>\n<th>name raw<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>Lekomtsev Denis Nikolaevich<\/td>\n<td><u>Lekomtsev<\/u><\/td>\n<td><u>Denis<\/u><\/td>\n<td><u>Nikolaevich<\/u><\/td>\n<td>...<\/td>\n<td>\u041b\u0435\u043a\u043e\u043c\u0446\u0435\u0432 \u0414\u0435\u043d\u0438\u0441 \u041d\u0438\u043a\u043e\u043b\u0430\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Ivanov Andrey Aleksandrovich<\/td>\n<td><u>Ivanov<\/u><\/td>\n<td><u>Andrey<\/u><\/td>\n<td><u>Aleksandrovich<\/u><\/td>\n<td>...<\/td>\n<td>\u0418\u0432\u0430\u043d\u043e\u0432 \u0410\u043d\u0434\u0440\u0435\u0439 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Ivanov Evgeniy Vasilevich<\/td>\n<td><u>Ivanov<\/u><\/td>\n<td><u>Evgeniy<\/u><\/td>\n<td><u>Vasilevich<\/u><\/td>\n<td>...<\/td>\n<td>\u0418\u0432\u0430\u043d\u043e\u0432 \u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Setepov Vladislav<\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td>...<\/td>\n<td>\u0421\u0435\u0442\u0435\u043f\u043e\u0432 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Mishanin Sergey Yurevich<\/td>\n<td><u>Mishanin<\/u><\/td>\n<td><u>Sergey<\/u><\/td>\n<td><u>Yurevich<\/u><\/td>\n<td>...<\/td>\n<td>\u041c\u0438\u0448\u0430\u043d\u0438\u043d \u0421\u0435\u0440\u0433\u0435\u0439 \u042e\u0440\u044c\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Baranov Andrey Aleksandrovich<\/td>\n<td><u>Baranov<\/u><\/td>\n<td><u>Andrey<\/u><\/td>\n<td><u>Aleksandrovich<\/u><\/td>\n<td>...<\/td>\n<td>\u0411\u0430\u0440\u0430\u043d\u043e\u0432 \u0410\u043d\u0434\u0440\u0435\u0439 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Nakaryakov Dmitriy Valerevich<\/td>\n<td><u>Nakaryakov<\/u><\/td>\n<td><u>Dmitriy<\/u><\/td>\n<td><u>Valerevich<\/u><\/td>\n<td>...<\/td>\n<td>\u041d\u0430\u043a\u0430\u0440\u044f\u043a\u043e\u0432 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0412\u0430\u043b\u0435\u0440\u044c\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Tretyakov Dmitriy Valentinovich<\/td>\n<td><u>Tretyakov<\/u><\/td>\n<td><u>Dmitriy<\/u><\/td>\n<td><u>Valentinovich<\/u><\/td>\n<td>...<\/td>\n<td>\u0422\u0440\u0435\u0442\u044c\u044f\u043a\u043e\u0432 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0412\u0430\u043b\u0435\u043d\u0442\u0438\u043d\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Kuznetsov Stanislav Vladimirovich<\/td>\n<td><u>Kuznetsov<\/u><\/td>\n<td><u>Stanislav<\/u><\/td>\n<td><u>Vladimirovich<\/u><\/td>\n<td>...<\/td>\n<td>\u041a\u0443\u0437\u043d\u0435\u0446\u043e\u0432 \u0421\u0442\u0430\u043d\u0438\u0441\u043b\u0430\u0432 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>Dubrovin Maksim Sergeevich<\/td>\n<td><u>Dubrovin<\/u><\/td>\n<td><u>Maksim<\/u><\/td>\n<td><u>Sergeevich<\/u><\/td>\n<td>...<\/td>\n<td>\u0414\u0443\u0431\u0440\u043e\u0432\u0438\u043d \u041c\u0430\u043a\u0441\u0438\u043c \u0421\u0435\u0440\u0433\u0435\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>Karpov Anatoliy Sergeevich<\/td>\n<td><u>Karpov<\/u><\/td>\n<td><u>Anatoliy<\/u><\/td>\n<td><u>Sergeevich<\/u><\/td>\n<td>...<\/td>\n<td>\u041a\u0430\u0440\u043f\u043e\u0432 \u0410\u043d\u0430\u0442\u043e\u043b\u0438\u0439 \u0421\u0435\u0440\u0433\u0435\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0417\u0434\u0435\u0441\u044c, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043d\u0435 \u0431\u044b\u043b\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432 \u043a\u0430\u043a\u0443\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u043f\u043e\u043f\u0430\u043b\u043e \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u043e. \u0412\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u2013 <i>name1, name2<\/i>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u0435\u0441\u0442\u043e \u043e\u043d\u043e \u0441\u0442\u043e\u044f\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438, \u0441\u043e\u0431\u0435\u0440\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0438\u043c\u044f \u0443\u0436\u0435 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e. <\/p>\n<pre><code class=\"python\">for e in wp:         n1=(''.join(rd[e]['name1'])).count('vich')+(''.join(rd[e]['name1'])).count('vna')     n2=(''.join(rd[e]['name2'])).count('vich')+(''.join(rd[e]['name2'])).count('vna')      if (n1 &gt; n2):         rd[e]['new name'] = rd[e]['name0'] + ' ' + rd[e]['name2']     else:         rd[e]['new name'] = rd[e]['name0'] + ' ' + rd[e]['name1'] <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>name<\/th>\n<th>name0<\/th>\n<th>name1<\/th>\n<th>name2<\/th>\n<th><u>new name<\/u><\/th>\n<th>name raw<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>Gorik Pavel Vladimirovich<\/td>\n<td>Gorik<\/td>\n<td>Pavel<\/td>\n<td>Vladimirovich<\/td>\n<td><u>Gorik Pavel<\/u><\/td>\n<td>\u0413\u043e\u0440\u0438\u043a \u041f\u0430\u0432\u0435\u043b \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Korobov Oleg Anatolevich<\/td>\n<td>Korobov<\/td>\n<td>Oleg<\/td>\n<td>Anatolevich<\/td>\n<td><u>Korobov Oleg<\/u><\/td>\n<td>\u041a\u043e\u0440\u043e\u0431\u043e\u0432 \u041e\u043b\u0435\u0433 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Pavlishchev Yaroslav Stanislavovich<\/td>\n<td>Pavlishchev<\/td>\n<td>Yaroslav<\/td>\n<td>Stanislavovich<\/td>\n<td><u>Pavlishchev Yaroslav<\/u><\/td>\n<td>\u041f\u0430\u0432\u043b\u0438\u0449\u0435\u0432 \u042f\u0440\u043e\u0441\u043b\u0430\u0432 \u0421\u0442\u0430\u043d\u0438\u0441\u043b\u0430\u0432\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Fedorov Nikolay Nikolaevich<\/td>\n<td>Fedorov<\/td>\n<td>Nikolay<\/td>\n<td>Nikolaevich<\/td>\n<td><u>Fedorov Nikolay<\/u><\/td>\n<td>\u0424\u0451\u0434\u043e\u0440\u043e\u0432 \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u041d\u0438\u043a\u043e\u043b\u0430\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Medvedev Andrey Aleksandrovich<\/td>\n<td>Medvedev<\/td>\n<td>Andrey<\/td>\n<td>Aleksandrovich<\/td>\n<td><u>Medvedev Andrey<\/u><\/td>\n<td>\u041c\u0435\u0434\u0432\u0435\u0434\u0435\u0432 \u0410\u043d\u0434\u0440\u0435\u0439 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Popov Sergey Eduardovich<\/td>\n<td>Popov<\/td>\n<td>Sergey<\/td>\n<td>Eduardovich<\/td>\n<td><u>Popov Sergey<\/u><\/td>\n<td>\u041f\u043e\u043f\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439 \u042d\u0434\u0443\u0430\u0440\u0434\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Dumchev Andrey Viktorovich<\/td>\n<td>Dumchev<\/td>\n<td>Andrey<\/td>\n<td>Viktorovich<\/td>\n<td><u>Dumchev Andrey<\/u><\/td>\n<td>\u0414\u0443\u043c\u0447\u0435\u0432 \u0410\u043d\u0434\u0440\u0435\u0439 \u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Trusov Mikhail Vladimirovich<\/td>\n<td>Trusov<\/td>\n<td>Mikhail<\/td>\n<td>Vladimirovich<\/td>\n<td><u>Trusov Mikhail<\/u><\/td>\n<td>\u0422\u0440\u0443\u0441\u043e\u0432 \u041c\u0438\u0445\u0430\u0438\u043b \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Demichev Yuriy Anatolevich<\/td>\n<td>Demichev<\/td>\n<td>Yuriy<\/td>\n<td>Anatolevich<\/td>\n<td><u>Demichev Yuriy<\/u><\/td>\n<td>\u0414\u0435\u043c\u0438\u0447\u0435\u0432 \u042e\u0440\u0438\u0439 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>Pushkin Boris Sergeevich<\/td>\n<td>Pushkin<\/td>\n<td>Boris<\/td>\n<td>Sergeevich<\/td>\n<td><u>Pushkin Boris<\/u><\/td>\n<td>\u041f\u0443\u0448\u043a\u0438\u043d \u0411\u043e\u0440\u0438\u0441 \u0421\u0435\u0440\u0433\u0435\u0435\u0432\u0438\u0447<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>Lando Aleksandr Borisovich<\/td>\n<td>Lando<\/td>\n<td>Aleksandr<\/td>\n<td>Borisovich<\/td>\n<td><u>Lando Aleksandr<\/u><\/td>\n<td>\u041b\u0430\u043d\u0434\u043e \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0411\u043e\u0440\u0438\u0441\u043e\u0432\u0438\u0447<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0422\u0435\u043f\u0435\u0440\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u043c \u043d\u043e\u0432\u043e\u0435 \u0438\u043c\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>name<\/i>, \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u043d\u043e \u043d\u0435\u043f\u0443\u0441\u0442\u043e\u0435, \u0438 \u0443\u0434\u0430\u043b\u0438\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438.<\/p>\n<pre><code class=\"python\">for e in wp:     ind = rd[e][rd[e]['new name'].str.strip() != ''].index     rd[e].loc[ind, 'name'] = rd[e].loc[ind, 'new name']     rd[e] = rd[e].drop(columns = ['name0','name1','name2','new name']) <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th><u>name<\/u><\/th>\n<th>country<\/th>\n<th>...<\/th>\n<th>name raw<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>M<\/td>\n<td><u>Yaroslav Pavlishchev<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u042f\u0440\u043e\u0441\u043b\u0430\u0432 \u0421\u0442\u0430\u043d\u0438\u0441\u043b\u0430\u0432\u043e\u0432\u0438\u0447 \u041f\u0430\u0432\u043b\u0438\u0449\u0435\u0432<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<td><u>Vladimir Perezhigin<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0412\u0430\u0441\u0438\u043b\u044c\u0435\u0432\u0438\u0447 \u041f\u0435\u0440\u0435\u0436\u0438\u0433\u0438\u043d<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>3<\/td>\n<td>M<\/td>\n<td><u>Vladislav Litvinchuk<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0415\u0432\u0433\u0435\u043d\u044c\u0435\u0432\u0438\u0447 \u041b\u0438\u0442\u0432\u0438\u043d\u0447\u0443\u043a<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>4<\/td>\n<td>M<\/td>\n<td><u>Sergey Gavrilenko<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0421\u0435\u0440\u0433\u0435\u0439 \u0413\u0435\u043d\u043d\u0430\u0434\u044c\u0435\u0432\u0438\u0447 \u0413\u0430\u0432\u0440\u0438\u043b\u0435\u043d\u043a\u043e<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>5<\/td>\n<td>M<\/td>\n<td><u>Ivan Markin<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0418\u0432\u0430\u043d \u041c\u0430\u0440\u043a\u043e\u0432\u0438\u0447 \u041c\u0430\u0440\u043a\u0438\u043d<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>6<\/td>\n<td>M<\/td>\n<td><u>Nikolay Sokolov<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>Nikolay Evgenevich Sokolov<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>7<\/td>\n<td>M<\/td>\n<td><u>Aram Kukhtiev<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0410\u0440\u0430\u043c \u041f\u0430\u0432\u043b\u043e\u0432\u0438\u0447 \u041a\u0443\u0445\u0442\u0438\u0435\u0432<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>8<\/td>\n<td>M<\/td>\n<td><u>Andrey Andreev<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0410\u043d\u0434\u0440\u0435\u0439 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u0438\u0447 \u0410\u043d\u0434\u0440\u0435\u0435\u0432<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>9<\/td>\n<td>M<\/td>\n<td><u>Denis Bulgakov<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0414\u0435\u043d\u0438\u0441 \u0412\u0430\u043b\u0435\u0440\u044c\u0435\u0432\u0438\u0447 \u0411\u0443\u043b\u0433\u0430\u043a\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>10<\/td>\n<td>M<\/td>\n<td><u>Aleksandr Kuts<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0418\u0432\u0430\u043d\u043e\u0432\u0438\u0447 \u041a\u0443\u0446\u044c<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>11<\/td>\n<td>M<\/td>\n<td><u>Aleksandr Lando<\/u><\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0411\u043e\u0440\u0438\u0441\u043e\u0432\u0438\u0447 \u041b\u0430\u043d\u0434\u043e<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041d\u0443 \u0432\u043e\u0442 \u0438 \u0432\u0441\u0435. \u041c\u044b \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 2 035 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u041d\u0435\u043f\u043b\u043e\u0445\u043e. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u0441\u044f.<\/p>\n<pre><code class=\"python\">pkl.dump(rd, open(r'D:\\tri\\details5.pkl', 'wb')) <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438\u043c\u0435\u043d\u0430 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u0440\u044f\u0434\u043a\u0443. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u0445 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0448\u043b\u043e \u0438\u043c\u044f \u043f\u043e\u0442\u043e\u043c \u0444\u0430\u043c\u0438\u043b\u0438\u044f, \u0438\u043b\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u2013 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0444\u0430\u043c\u0438\u043b\u0438\u044f, \u043f\u043e\u0442\u043e\u043c \u0438\u043c\u044f, \u0442\u043e\u0436\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u0445. \u0417\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e \u043a\u0430\u043a\u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0435, \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u044d\u0442\u043e \u0432\u044b\u044f\u0441\u043d\u0438\u043c. \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0441\u043b\u0435\u0433\u043a\u0430 \u043e\u0441\u043b\u043e\u0436\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432 \u0434\u0430\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u0443\u0431\u0440\u0430\u043b\u0438 \u043e\u0442\u0447\u0435\u0441\u0442\u0432\u0430.<\/p>\n<pre><code class=\"python\">ar['nwin'] = ar['name'].str.count(' ') + 1 # nwin \u2013 number of words in name ar.loc[ar['name'] == '','nwin'] = 0 100*ar['nwin'].value_counts()\/len(ar) <\/code><\/pre>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432 \u0432 \u0438\u043c\u0435\u043d\u0438 \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0414\u043e\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0435\u0439 (%)<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432 \u0432 \u0438\u043c\u0435\u043d\u0438<\/th>\n<th>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439<\/th>\n<th>\u0414\u043e\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0435\u0439 (%)<\/th>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>1285270<\/td>\n<td>90.74426<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>102220<\/td>\n<td>7.217066<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>22420<\/td>\n<td>1.582925<\/td>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>3454<\/td>\n<td>0.243864<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>2385<\/td>\n<td>0.168389<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>469<\/td>\n<td>0.033113<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>80<\/td>\n<td>0.005648<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>57<\/td>\n<td>0.004024<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>5<\/td>\n<td>0.000353<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>4<\/td>\n<td>0.000282<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>1<\/td>\n<td>0.000071<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u0434\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e (91%) \u2014 \u044d\u0442\u043e \u0434\u0432\u0430 \u0441\u043b\u043e\u0432\u0430 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043c\u044f \u0438 \u0444\u0430\u043c\u0438\u043b\u0438\u044f. \u041d\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0441 \u0442\u0440\u0435\u043c\u044f \u0438 \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0442\u043e\u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439: <\/p>\n<pre><code class=\"python\">ar[ar['nwin'] &gt;= 3]['country'].value_counts()[:12] <\/code><\/pre>\n<p>  <code><b>Out: <\/b><br \/>  ESP 28435<br \/>  MEX 10561<br \/>  USA 7608<br \/>  DNK 7178<br \/>  BRA 6321<br \/>  NLD 5748<br \/>  DEU 4310<br \/>  PHL 3941<br \/>  ZAF 3862<br \/>  ITA 3691<br \/>  BEL 3596<br \/>  FRA 3323<br \/>  <\/code><br \/>  \u0427\u0442\u043e \u0436, \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0442\u043e \u0418\u0441\u043f\u0430\u043d\u0438\u044f, \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u2013 \u041c\u0435\u043a\u0441\u0438\u043a\u0430, \u0438\u0441\u043f\u0430\u043d\u043e\u044f\u0437\u044b\u0447\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0430, \u0434\u0430\u043b\u044c\u0448\u0435 \u0421\u0428\u0410, \u0433\u0434\u0435 \u0442\u043e\u0436\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043b\u0430\u0442\u0438\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0446\u0435\u0432. \u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f \u0438 \u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u044b \u2013 \u0442\u043e\u0436\u0435 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0435 (\u0438 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0435) \u0438\u043c\u0435\u043d\u0430. \u0414\u0430\u043d\u0438\u044f, \u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u044b, \u0413\u0435\u0440\u043c\u0430\u043d\u0438\u044f, \u042e\u0410\u0420, \u0418\u0442\u0430\u043b\u0438\u044f, \u0411\u0435\u043b\u044c\u0433\u0438\u044f \u0438 \u0424\u0440\u0430\u043d\u0446\u0438\u044f \u2013 \u0434\u0440\u0443\u0433\u043e\u0435 \u0434\u0435\u043b\u043e, \u0442\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0438\u0434\u0435\u0442 \u043a\u0430\u043a\u0430\u044f-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u043a \u0444\u0430\u043c\u0438\u043b\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u0441\u043b\u043e\u0432 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0434\u0432\u0430. \u0412\u043e \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043e\u0434\u043d\u0430\u043a\u043e, \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0430\u043c\u043e \u0438\u043c\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430, \u0430 \u0444\u0430\u043c\u0438\u043b\u0438\u044f \u0438\u0437 \u0434\u0432\u0443\u0445, \u0442\u0440\u0435\u0445. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0435\u0441\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043d\u043e \u0438\u0445 \u043c\u044b \u0443\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0442\u0430\u043c \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a: \u0438\u043c\u044f-\u0444\u0430\u043c\u0438\u043b\u0438\u044f \u0438\u043b\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c? \u041c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u0430 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0438\u0434\u0435\u044f: \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0444\u0430\u043c\u0438\u043b\u0438\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0438\u043c\u0435\u043d. \u0422\u0430\u043a \u0434\u043e\u043b\u0436\u043d\u043e \u0434\u0430\u0436\u0435 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0434\u043b\u0438\u043d\u0430 \u0438\u043c\u0435\u043d\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0434\u043b\u0438\u043d\u0430 \u0444\u0430\u043c\u0438\u043b\u0438\u0438 (\u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043d\u0435\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0445 \u0444\u0430\u043c\u0438\u043b\u0438\u0439). \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0435\u0439 \u044d\u0442\u0438\u0445 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a. <\/p>\n<p>  \u0412\u044b\u0434\u0435\u043b\u0438\u043c \u043f\u0435\u0440\u0432\u043e\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0441\u043b\u043e\u0432\u043e \u0432 \u043f\u043e\u043b\u043d\u043e\u043c \u0438\u043c\u0435\u043d\u0438:<\/p>\n<pre><code class=\"python\">ar['new name'] = ar['name'] ind = ar[ar['nwin'] &lt; 2].index ar.loc[ind, 'new name'] = '. .' # \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c str.split() \u0434\u043b\u044f \u0432\u0441\u0435\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 ar['wfin'] = ar['new name'].str.split().str[0] #fwin  \u2013 first word in name ar['lwin'] = ar['new name'].str.split().str[-1]#lfin \u2013 last word in name <\/code><\/pre>\n<p>  \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c <i>ar<\/i> \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c <i>rd<\/i>, \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 <i>nwin, ns0, ns<\/i> \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043e\u043d\u043a\u0438. \u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0441 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c <i>\u201c\u0418\u043c\u044f \u0424\u0430\u043c\u0438\u043b\u0438\u044f\u201d<\/i> \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u0441 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044e. \u0411\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0438, \u0433\u0434\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432. \u0417\u0430\u043e\u0434\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0438\u043c\u044f (first name) \u0432 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435:<\/p>\n<pre><code class=\"python\">name_surname = {} surname_name = {}  for e in rd:     d = rd[e][rd[e]['nwin'] == 2]      if len(d['fwin'].unique()) &lt; len(d['lwin'].unique()) and len(''.join(d['fwin'])) &lt; len(''.join(d['lwin'])):         name_surname[e] = d         rd[e]['first name'] = rd[e]['fwin']      if len(d['fwin'].unique()) &gt; len(d['lwin'].unique()) and len(''.join(d['fwin'])) &gt; len(''.join(d['lwin'])):         surname_name[e] = d         rd[e]['first name'] = rd[e]['lwin'] <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u043f\u043e\u0440\u044f\u0434\u043e\u043a <i>\u0418\u043c\u044f \u0424\u0430\u043c\u0438\u043b\u0438\u044f<\/i> \u2013 244 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u043f\u043e\u0440\u044f\u0434\u043e\u043a <i>\u0424\u0430\u043c\u0438\u043b\u0438\u044f \u0418\u043c\u044f<\/i> \u2013 1 508 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432. <\/p>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043a \u0442\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0430\u0449\u0435. \u0421\u0443\u043c\u043c\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0434\u0430 \u0435\u0449\u0435 \u0438 \u0441\u043e \u0441\u0442\u0440\u043e\u0433\u0438\u043c \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e\u043c. \u041e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432, \u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u043e \u043c\u0430\u043b\u043e\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u043c\u0435\u0441\u0442\u043e \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e. \u041d\u043e \u044d\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435\u0432\u0430\u0436\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d. <\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043f\u043e\u043b\u0430\u0433\u0430\u044f, \u0447\u0442\u043e \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0447\u0442\u043e \u043d\u0435 \u0441\u043e \u0441\u0442\u043e\u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u043e\u0439, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439. \u041d\u0430\u0439\u0434\u0435\u043c \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0438\u0437 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 <i>first name<\/i>:<\/p>\n<pre><code class=\"python\">vc = ar['first name'].value_counts() <\/code><\/pre>\n<p>  \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0442\u0435, \u0447\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0438\u0441\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430 \u0440\u0430\u0437:<\/p>\n<pre><code class=\"python\">pfn=vc[vc&gt;100] #pfn \u2013 popular first names <\/code><\/pre>\n<p>  \u0442\u0430\u043a\u0438\u0445 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c 1 673. \u0412\u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u0442\u043e \u0438\u0437 \u043d\u0438\u0445, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043f\u043e \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438:<br \/>  <code>['Michael', 'David', 'Thomas', 'John', 'Daniel', 'Mark', 'Peter', 'Paul', 'Christian', 'Robert', 'Martin', 'James', 'Andrew', 'Chris', 'Richard', 'Andreas', 'Matthew', 'Brian', 'Patrick', 'Scott', 'Kevin', 'Stefan', 'Jason', 'Eric', 'Christopher', 'Alexander', 'Simon', 'Mike', 'Tim', 'Frank', 'Stephen', 'Steve', 'Andrea', 'Jonathan', 'Markus', 'Marco', 'Adam', 'Ryan', 'Jan', 'Tom', 'Marc', 'Carlos', 'Jennifer', 'Matt', 'Steven', 'Jeff', 'Sergey', 'William', 'Aleksandr', 'Sarah', 'Alex', 'Jose', 'Andrey', 'Benjamin', 'Sebastian', 'Ian', 'Anthony', 'Ben', 'Oliver', 'Antonio', 'Ivan', 'Sean', 'Manuel', 'Matthias', 'Nicolas', 'Dan', 'Craig', 'Dmitriy', 'Laura', 'Luis', 'Lisa', 'Kim', 'Anna', 'Nick', 'Rob', 'Maria', 'Greg', 'Aleksey', 'Javier', 'Michelle', 'Andre', 'Mario', 'Joseph', 'Christoph', 'Justin', 'Jim', 'Gary', 'Erik', 'Andy', 'Joe', 'Alberto', 'Roberto', 'Jens', 'Tobias', 'Lee', 'Nicholas', 'Dave', 'Tony', 'Olivier', 'Philippe']<br \/>  <\/code><br \/>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a, \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0442\u044c \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c, \u0433\u0434\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u2013 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u043e\u0432\u0435 \u0438\u0437 \u0438\u043c\u0435\u043d\u0438 \u0438\u043b\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c. \u0411\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u0435\u043d\u0430, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0441\u043b\u043e\u0432. \u0415\u0441\u043b\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c, \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439, \u0435\u0441\u043b\u0438 \u0441 \u043f\u0435\u0440\u0432\u044b\u043c, \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439. \u041f\u0440\u0438\u0447\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u0438 \u043a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043c\u0435\u043d \u0438\u0445 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430. \u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d \u0438\u0437 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043a \u0442\u0435\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0439 \u043c\u0430\u043b\u043e, \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u043b\u0438\u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u0446\u0438\u043a\u043b\u0430.<\/p>\n<pre><code class=\"python\">sbpn = pd.DataFrame(columns = ['event', 'num pop names'], index=range(len(rd))) # sbpn - sorted by popular names  for i in range(len(rd)):     e = list(rd.keys())[i]     sbpn.loc[i, 'event'] = e     sbpn.loc[i, 'num pop names'] = len(set(pfn).intersection(rd[e]['first name']))  sbnp=sbnp.sort_values(by = 'num pop names',ascending=False) sbnp = sbnp.reset_index(drop=True)  <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>event<\/th>\n<th>num pop names<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>Ironman World Championship 70.3 2016<\/td>\n<td>811<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Ironman World Championship 2019<\/td>\n<td>781<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Ironman World Championship 70.3 2015<\/td>\n<td>778<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Ironman Mallorca 70.3 2014<\/td>\n<td>776<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Ironman World Championship 2018<\/td>\n<td>766<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Challenge Roth Long 2019<\/td>\n<td>759<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<\/tr>\n<tr>\n<td>1917<\/td>\n<td>Challenge Gran Canaria Olympic 2019<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1918<\/td>\n<td>Challenge Gran Canaria Middle 2017<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1919<\/td>\n<td>Challenge Forte Village-Sardinia Sprint 2017<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1920<\/td>\n<td>ITU European Cup Kuopio Sprint 2007<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1921<\/td>\n<td>ITU World Cup Madeira Olympic 2002<\/td>\n<td>0<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><\/p>\n<pre><code class=\"python\">tofix = []  for i in range(len(rd)):     e = sbpn.loc[i, 'event']      if len(set(list(rd[e]['fwin'])).intersection(pfn)) &gt; len(set(list(rd[e]['lwin'])).intersection(pfn)):         tofix.append(e)         pfn = list(set(pfn + list(rd[e]['fwin'])))     else:         pfn = list(set(pfn + list(rd[e]['lwin']))) <\/code><\/pre>\n<p>  \u041d\u0430\u0448\u043b\u043e\u0441\u044c 235 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0438 (244). \u0414\u043b\u044f \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043f\u0435\u0440\u0432\u044b\u0435 \u0442\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438\u0437 \u043a\u0430\u0436\u0434\u043e\u0433\u043e, \u0443\u0431\u0435\u0434\u0438\u043b\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u0442\u0430\u043f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0434\u0430\u043b 36 \u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u0437 \u043a\u043b\u0430\u0441\u0441\u0430 <i>\u0418\u043c\u044f \u0424\u0430\u043c\u0438\u043b\u0438\u044f<\/i> \u0438 2 \u043b\u043e\u0436\u043d\u044b\u0439 \u0438\u0437 \u043a\u043b\u0430\u0441\u0441\u0430 <i>\u0424\u0430\u043c\u0438\u043b\u0438\u044f \u0418\u043c\u044f<\/i>. \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043f\u043e \u0442\u0440\u0438 \u043f\u0435\u0440\u0432\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438\u0437 \u043a\u0430\u0436\u0434\u043e\u0433\u043e, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u0442\u043e\u0440\u043e\u0439 \u044d\u0442\u0430\u043f \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043e\u0442\u043b\u0438\u0447\u043d\u043e. \u0422\u0435\u043f\u0435\u0440\u044c, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0442\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b, \u0433\u0434\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a:<\/p>\n<pre><code class=\"python\">for e in tofix:     ind = rd[e][rd[e]['nwin'] &gt; 1].index     rd[e].loc[ind,'name'] = rd[e].loc[ind,'name'].str.split(n=1).str[1] + ' ' +                   rd[e].loc[ind,'name'].str.split(n=1).str[0] <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0432 \u0441\u043f\u043b\u0438\u0442\u0435 \u043c\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043b\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0443\u0441\u043a\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <i>n<\/i>. \u041b\u043e\u0433\u0438\u043a\u0430 \u0442\u0430\u043a\u0430\u044f: \u0438\u043c\u044f \u2013 \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0432\u043e, \u043f\u0435\u0440\u0432\u043e\u0435 \u0432 \u043f\u043e\u043b\u043d\u043e\u043c \u0438\u043c\u0435\u043d\u0438. \u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u2013 \u0444\u0430\u043c\u0438\u043b\u0438\u044f (\u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u043b\u043e\u0432). \u041f\u0440\u043e\u0441\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u043c \u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u043c\u0438. <\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u0441\u044f:<\/p>\n<pre><code class=\"python\">for e in rd:     rd[e] = rd[e].drop(columns = ['new name', 'first name', 'fwin','lwin', 'nwin'])  pkl.dump(rd, open(r'D:\\tri\\details6.pkl', 'wb')) <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0421\u043b\u0443\u0447\u0430\u0439\u043d\u0430\u044f \u0434\u0435\u0441\u044f\u0442\u043a\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th><u>name<\/u><\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>...<\/th>\n<th><u>name raw<\/u><\/th>\n<\/tr>\n<tr>\n<td>188<\/td>\n<td>189<\/td>\n<td>M<\/td>\n<td><u>Azhel Dmitriy<\/u><\/td>\n<td>BLR<\/td>\n<td><\/td>\n<td>...<\/td>\n<td><u>\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0410\u0436\u0435\u043b\u044c<\/u><\/td>\n<\/tr>\n<tr>\n<td>96<\/td>\n<td>97<\/td>\n<td>M<\/td>\n<td><u>Bostina Cristian<\/u><\/td>\n<td>ROU<\/td>\n<td><\/td>\n<td>...<\/td>\n<td><u>Cristian Bostina<\/u><\/td>\n<\/tr>\n<tr>\n<td>1757<\/td>\n<td>1758<\/td>\n<td>M<\/td>\n<td><u>Lowe Jonathan<\/u><\/td>\n<td>AUS<\/td>\n<td>M30-34<\/td>\n<td>...<\/td>\n<td><u>Jonathan LOWE<\/u><\/td>\n<\/tr>\n<tr>\n<td>599<\/td>\n<td>600<\/td>\n<td>M<\/td>\n<td><u>Baerwald Manuel<\/u><\/td>\n<td>DEU<\/td>\n<td><\/td>\n<td>...<\/td>\n<td><u>Manuel BAERWALD<\/u><\/td>\n<\/tr>\n<tr>\n<td>657<\/td>\n<td>658<\/td>\n<td>M<\/td>\n<td><u>Krumdieck Ralf<\/u><\/td>\n<td>DEU<\/td>\n<td><\/td>\n<td>...<\/td>\n<td><u>Ralf KRUMDIECK<\/u><\/td>\n<\/tr>\n<tr>\n<td>354<\/td>\n<td>355<\/td>\n<td>F<\/td>\n<td><u>Knapp Samantha<\/u><\/td>\n<td>USA<\/td>\n<td>F30-34<\/td>\n<td>...<\/td>\n<td><u>Samantha Knapp<\/u><\/td>\n<\/tr>\n<tr>\n<td>375<\/td>\n<td>376<\/td>\n<td>M<\/td>\n<td><u>Rintalaulaja Mika<\/u><\/td>\n<td>FIN<\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td><u>Mika Rintalaulaja<\/u><\/td>\n<\/tr>\n<tr>\n<td>1304<\/td>\n<td>1305<\/td>\n<td>M<\/td>\n<td><u>Dee Jim<\/u><\/td>\n<td>USA<\/td>\n<td>M50-54<\/td>\n<td>...<\/td>\n<td><u>Jim DEE<\/u><\/td>\n<\/tr>\n<tr>\n<td>178<\/td>\n<td>179<\/td>\n<td>M<\/td>\n<td><u>Halibert Greg<\/u><\/td>\n<td>FRA<\/td>\n<td><\/td>\n<td>...<\/td>\n<td><u>GREG HALIBERT<\/u><\/td>\n<\/tr>\n<tr>\n<td>2740<\/td>\n<td>2741<\/td>\n<td>F<\/td>\n<td><u>Comia Marissa<\/u><\/td>\n<td>USA<\/td>\n<td>F45-49<\/td>\n<td>...<\/td>\n<td><u>Marissa COMIA<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0412\u0441\u0435\u0433\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e 108 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u043e\u0441\u044c \u0441 598 \u0434\u043e 547 \u0442\u044b\u0441\u044f\u0447. \u041e\u0442\u043b\u0438\u0447\u043d\u043e! \u0421 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438.<\/p>\n<h2>\u0427\u0430\u0441\u0442\u044c 3. \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0410 \u0442\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c.<\/p>\n<h3>\u0421\u0442\u0440\u0430\u043d\u0430<\/h3>\n<p>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441\u043e \u0441\u0442\u0440\u0430\u043d\u044b. \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0430:<\/p>\n<pre><code class=\"python\">arnc = ar[ar['country'] == ''] #arnc \u2013 all records with no country <\/code><\/pre>\n<p>  \u0418\u0445 3 221. \u0412\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 10 \u0438\u0437 \u043d\u0438\u0445:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th><u>country<\/u><\/th>\n<th>group<\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1633<\/td>\n<td>M<\/td>\n<td>Guerrero Pla Angel<\/td>\n<td><\/td>\n<td>M30-34<\/td>\n<td>...<\/td>\n<td>E<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>258<\/td>\n<td>M<\/td>\n<td>Bellm Mathias<\/td>\n<td><\/td>\n<td>M35-39<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>655<\/td>\n<td>M<\/td>\n<td>Moratto Alessio<\/td>\n<td><\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td>I<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1317<\/td>\n<td>M<\/td>\n<td>Solari Jean-Jacques<\/td>\n<td><\/td>\n<td>M50-54<\/td>\n<td>...<\/td>\n<td>TAH<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1311<\/td>\n<td>F<\/td>\n<td>Duranel Isabelle<\/td>\n<td><\/td>\n<td>F40-44<\/td>\n<td>...<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1012<\/td>\n<td>M<\/td>\n<td>Endler Maximilian<\/td>\n<td><\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>284<\/td>\n<td>M<\/td>\n<td>Schreiner Jorg<\/td>\n<td><\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>14<\/td>\n<td>M<\/td>\n<td>Butturini Jacopo<\/td>\n<td><\/td>\n<td><\/td>\n<td>...<\/td>\n<td>ITU<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>204<\/td>\n<td>M<\/td>\n<td>Lindner Thomas<\/td>\n<td><\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1168<\/td>\n<td>M<\/td>\n<td>Gramke Peter<\/td>\n<td><\/td>\n<td>M45-49<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><\/p>\n<pre><code class=\"python\">nnc = arnc['name'].unique() #nnc - names with no country <\/code><\/pre>\n<p>  \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u0441\u0440\u0435\u0434\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u0435\u0437 \u0441\u0442\u0440\u0430\u043d\u044b \u2013 3 051. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e. <\/p>\n<p>  \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d\u0435 \u043b\u044e\u0434\u0438 \u0440\u0435\u0434\u043a\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u043d\u043a\u043e\u0439, \u043e\u0431\u044b\u0447\u043d\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0437\u0430 \u0441\u0435\u0437\u043e\u043d, \u0438\u0437 \u0433\u043e\u0434\u0430 \u0432 \u0433\u043e\u0434, \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0442\u0440\u0435\u043d\u0438\u0440\u0443\u044f\u0441\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0438\u043c\u0435\u043d \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438. \u0427\u0442\u043e\u0431\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0442\u0440\u0430\u043d\u0435, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u0438\u043c\u0435\u043d\u0435\u043c \u0441\u0440\u0435\u0434\u0438 \u0442\u0435\u0445, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430. <\/p>\n<pre><code class=\"python\">arwc = ar[ar['country'] != ''] #arwc \u2013 all records with country nwc = arwc['name'].unique() #nwc \u2013 names with country tofix = set(nnc).intersection(nwc)<\/code><\/pre>\n<p>  <code><b>Out:<\/b> ['Kleber-Schad Ute Cathrin', 'Sellner Peter', 'Pfeiffer Christian', 'Scholl Thomas', 'Petersohn Sandra', 'Marchand Kurt', 'Janneck Britta', 'Angheben Riccardo', 'Thiele Yvonne', 'Kie?Wetter Martin', 'Schymik Gerhard', 'Clark Donald', 'Berod Brigitte', 'Theile Markus', 'Giuliattini Burbui Margherita', 'Wehrum Alexander', 'Kenny Oisin', 'Schwieger Peter', 'Grosse Bianca', 'Schafter Carsten', 'Breck Dirk', 'Mautes Christoph', 'Herrmann Andreas', 'Gilbert Kai', 'Steger Peter', 'Jirouskova Jana', 'Jehrke Michael', 'Valentine David', 'Reis Michael', 'Wanka Michael', 'Schomburg Jonas', 'Giehl Caprice', 'Zinser Carsten', 'Schumann Marcus', 'Magoni Livio', 'Lauden Yann', 'Mayer Dieter', 'Krisa Stefan', 'Haberecht Bernd', 'Schneider Achim', 'Gibanel Curto Antonio', 'Miranda Antonio', 'Juarez Pedro', 'Prelle Gerrit', 'Wuste Kay', 'Bullock Graeme', 'Hahner Martin', 'Kahl Maik', 'Schubnell Frank', 'Hastenteufel Marco', \u2026]<br \/>  <\/code><br \/>  \u0422\u0430\u043a\u0438\u0445 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c 2 236, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u0442\u0440\u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0443 \u043f\u043e \u0442\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044f\u043c, \u0433\u0434\u0435 \u043e\u043d\u0430 \u0435\u0441\u0442\u044c. \u041d\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0442\u0430\u043a, \u0447\u0442\u043e \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0438\u043c\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u044f\u0445 \u0438 \u0432 \u043d\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u044b. \u042d\u0442\u043e \u0438\u043b\u0438 \u0442\u0435\u0437\u043a\u0438, \u0438\u043b\u0438, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0442\u0435, \u0433\u0434\u0435 \u0432\u0441\u0435 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e.<\/p>\n<pre><code class=\"python\">fix = {}  for n in tofix:     nr = arwc[arwc['name'] == n]  \t     if len(nr['country'].unique()) == 1:         fix[n] = nr['country'].iloc[0]<\/code><\/pre>\n<p>  C\u0434\u0435\u043b\u0430\u043b \u0432 \u0446\u0438\u043a\u043b\u0435. \u041d\u043e, \u0447\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u043b\u0433\u043e \u2013 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0440\u0438 \u043c\u0438\u043d\u0443\u0442\u044b. \u0415\u0441\u043b\u0438 \u0431\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u044b\u043b\u043e \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e. \u041d\u0430\u0448\u043b\u043e\u0441\u044c 2 013 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438\u043b\u0438 90% \u043e\u0442 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445.<\/p>\n<p>  \u0418\u043c\u0435\u043d\u0430, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u044f\u0445 \u043c\u043e\u0433\u0443\u0442 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u044b, \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e. <\/p>\n<pre><code class=\"python\">if n not in fix:     nr = arwc[arwc['name'] == n]     vc = nr['country'].value_counts()     \t     if vc[0] &gt; vc[1]:         fix[n] = vc.index[0]<\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0434\u043b\u044f 2 208 \u0438\u043c\u0435\u043d \u0438\u043b\u0438 99% \u043e\u0442 \u0432\u0441\u0435\u0445 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445. <br \/>  <code>{'Kleber-Schad Ute Cathrin': 'DEU', 'Sellner Peter': 'AUT', 'Pfeiffer Christian': 'AUT', 'Scholl Thomas': 'DEU', 'Petersohn Sandra': 'DEU', 'Marchand Kurt': 'BEL', 'Janneck Britta': 'DEU', 'Angheben Riccardo': 'ITA', 'Thiele Yvonne': 'DEU', 'Kie?Wetter Martin': 'DEU', 'Clark Donald': 'GBR', 'Berod Brigitte': 'FRA', 'Theile Markus': 'DEU', 'Giuliattini Burbui Margherita': 'ITA', 'Wehrum Alexander': 'DEU', 'Kenny Oisin': 'IRL', 'Schwieger Peter': 'DEU', 'Schafter Carsten': 'DEU', 'Breck Dirk': 'DEU', 'Mautes Christoph': 'DEU', 'Herrmann Andreas': 'DEU', 'Gilbert Kai': 'DEU', 'Steger Peter': 'AUT', 'Jirouskova Jana': 'CZE', 'Jehrke Michael': 'DEU', 'Wanka Michael': 'DEU', 'Giehl Caprice': 'DEU', 'Zinser Carsten': 'DEU', 'Schumann Marcus': 'DEU', 'Magoni Livio': 'ITA', 'Lauden Yann': 'FRA', 'Mayer Dieter': 'DEU', 'Krisa Stefan': 'DEU', 'Haberecht Bernd': 'DEU', 'Schneider Achim': 'DEU', 'Gibanel Curto Antonio': 'ESP', 'Juarez Pedro': 'ESP', 'Prelle Gerrit': 'DEU', 'Wuste Kay': 'DEU', 'Bullock Graeme': 'GBR', 'Hahner Martin': 'DEU', 'Kahl Maik': 'DEU', 'Schubnell Frank': 'DEU', 'Hastenteufel Marco': 'DEU', 'Tedde Roberto': 'ITA', 'Minervini Domenico': 'ITA', 'Respondek Markus': 'DEU', 'Kramer Arne': 'DEU', 'Schreck Alex': 'DEU', 'Bichler Matthias': 'DEU', \u2026}<br \/>  <\/code><br \/>  \u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u044d\u0442\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f:<\/p>\n<pre><code class=\"python\">for n in fix:     ind = arnc[arnc['name'] == n].index     ar.loc[ind, 'country'] = fix[n]<\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th><u>country<\/u><\/th>\n<th>group<\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1633<\/td>\n<td>M<\/td>\n<td>Guerrero Pla Angel<\/td>\n<td><u>ESP<\/u><\/td>\n<td>M30-34<\/td>\n<td>...<\/td>\n<td>E<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>258<\/td>\n<td>M<\/td>\n<td>Bellm Mathias<\/td>\n<td><u>DEU<\/u><\/td>\n<td>M35-39<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>655<\/td>\n<td>M<\/td>\n<td>Moratto Alessio<\/td>\n<td><u>ITA<\/u><\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td>I<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1317<\/td>\n<td>M<\/td>\n<td>Solari Jean-Jacques<\/td>\n<td><u>PYF<\/u><\/td>\n<td>M50-54<\/td>\n<td>...<\/td>\n<td>TAH<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1311<\/td>\n<td>F<\/td>\n<td>Duranel Isabelle<\/td>\n<td><u>FRA<\/u><\/td>\n<td>F40-44<\/td>\n<td>...<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1012<\/td>\n<td>M<\/td>\n<td>Endler Maximilian<\/td>\n<td><u>DEU<\/u><\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>284<\/td>\n<td>M<\/td>\n<td>Schreiner Jorg<\/td>\n<td><u>DEU<\/u><\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>14<\/td>\n<td>M<\/td>\n<td>Butturini Jacopo<\/td>\n<td><u>HRV<\/u><\/td>\n<td><\/td>\n<td>...<\/td>\n<td>ITU<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>204<\/td>\n<td>M<\/td>\n<td>Lindner Thomas<\/td>\n<td><u>DEU<\/u><\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1168<\/td>\n<td>M<\/td>\n<td>Gramke Peter<\/td>\n<td><u>DEU<\/u><\/td>\n<td>M45-49<\/td>\n<td>...<\/td>\n<td>D<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0448\u0438\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u0435\u0437 \u0441\u0442\u0440\u0430\u043d\u044b \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u043e\u0441\u044c \u0434\u043e 909, \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u0432 \u0442\u0440\u0438 \u0440\u0430\u0437\u0430. \u0425\u043e\u0442\u044f \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432 2 208 \u043d\u0435 \u0442\u0430\u043a \u0432\u0435\u043b\u0438\u043a\u043e \u043d\u0430 \u0444\u043e\u043d\u0435 \u043f\u043e\u043b\u0443\u0442\u043e\u0440\u0430 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432, \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u043e.<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c <i>ar<\/i> \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c <i>rd<\/i> \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c.<\/p>\n<pre><code class=\"python\">pkl.dump(rd, open(r'D:\\tri\\details7.pkl', 'wb')) <\/code><\/pre>\n<p>  <\/p>\n<h3>\u041f\u043e\u043b<\/h3>\n<p>  \u0422\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e \u0441\u0442\u0440\u0430\u043d\u0430\u043c\u0438 \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u043f\u043e\u043b \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430. <\/p>\n<pre><code class=\"python\">ar[ar['sex'] == ''] <\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u0445 2 538. \u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0435 \u043c\u0435\u043d\u044c\u0448\u0435. \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435. <\/p>\n<pre><code class=\"python\">ar['sex raw'] =ar['sex'] <\/code><\/pre>\n<p>  \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0441\u0442\u0440\u0430\u043d, \u0433\u0434\u0435 \u043c\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432, \u0437\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u043d\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u043c\u0430\u043b\u043e \u0438\u043c\u0435\u043d (\u0432\u0441\u0435\u0433\u043e 2 101), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u0435\u0442\u043a\u0430\u043c\u0438 \u043e\u0431\u043e\u0438\u0445 \u043f\u043e\u043b\u043e\u0432.<\/p>\n<pre><code class=\"python\">arws = ar[(ar['sex'] != '')&(ar['name'] != '')] #arws \u2013 all records with sex snds = arws[arws.duplicated(subset='name',keep=False)]#snds\u2013single name different sex snds = snds.drop_duplicates(subset=['name','sex'], keep = 'first') snds = snds.sort_values(by='name') snds = snds[snds.duplicated(subset = 'name', keep=False)]  snds<\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th><u>sex<\/u><\/th>\n<th><u>name<\/u><\/th>\n<th>country<\/th>\n<th><u>group<\/u><\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th>group raw<\/th>\n<th>sex raw<\/th>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>428<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Aagaard Ida<\/u><\/td>\n<td>NOR<\/td>\n<td><u>F40-44<\/u><\/td>\n<td>...<\/td>\n<td>NOR<\/td>\n<td>F40-44<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>718<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Aagaard Ida<\/u><\/td>\n<td>NOR<\/td>\n<td><u>M40-44<\/u><\/td>\n<td>...<\/td>\n<td>NOR<\/td>\n<td>M40-44<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>740<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Aarekol Tove Aase<\/u><\/td>\n<td>NOR<\/td>\n<td><u>M50-54<\/u><\/td>\n<td>...<\/td>\n<td>NOR<\/td>\n<td>M50-54<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>520<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Aarekol Tove Aase<\/u><\/td>\n<td>NOR<\/td>\n<td><u>F50-54<\/u><\/td>\n<td>...<\/td>\n<td>NOR<\/td>\n<td>F50-54<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>665<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Aaroy Torunn<\/u><\/td>\n<td>NOR<\/td>\n<td><u>F40-44<\/u><\/td>\n<td>...<\/td>\n<td>NOR<\/td>\n<td>F40-44<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1591<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Aaroy Torunn<\/u><\/td>\n<td>NOR<\/td>\n<td><u>M40-44<\/u><\/td>\n<td>...<\/td>\n<td>NOR<\/td>\n<td>M40-44<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>70<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Aberg Cobo Dolores<\/u><\/td>\n<td>ARG<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>...<\/td>\n<td>ARG<\/td>\n<td>FPRO<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1258<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Aberg Cobo Dolores<\/u><\/td>\n<td>ARG<\/td>\n<td><u>F30-34<\/u><\/td>\n<td>...<\/td>\n<td>ARG<\/td>\n<td>F30-34<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1909<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Aboulfaida Zineb<\/u><\/td>\n<td>MAR<\/td>\n<td><u>F35-39<\/u><\/td>\n<td>...<\/td>\n<td>MAR<\/td>\n<td>F35-39<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>340<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Aboulfaida Zineb<\/u><\/td>\n<td>MAR<\/td>\n<td><u>M35-39<\/u><\/td>\n<td>...<\/td>\n<td>MAR<\/td>\n<td>M35-39<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>63<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Abram Felicity<\/u><\/td>\n<td>AUS<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>...<\/td>\n<td>AUS<\/td>\n<td>FPRO<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>38<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Abram Felicity<\/u><\/td>\n<td>AUS<\/td>\n<td><u>FJUNIOR<\/u><\/td>\n<td>...<\/td>\n<td>AUS<\/td>\n<td>FJUNIOR<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>134<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Abramowski Jannicke<\/u><\/td>\n<td>DEU<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>...<\/td>\n<td>GER<\/td>\n<td>FPRO<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>323<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Abramowski Jannicke<\/u><\/td>\n<td>DEU<\/td>\n<td><u>F25-29<\/u><\/td>\n<td>...<\/td>\n<td>GER<\/td>\n<td>F25-29<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>21<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Abrosimova Anastasia<\/u><\/td>\n<td>RUS<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>FPRO<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>177<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Abrosimova Anastasia<\/u><\/td>\n<td>RUS<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>FPRO<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>188<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Abysova Irina<\/u><\/td>\n<td>RUS<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>FPRO<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>60<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Abysova Irina<\/u><\/td>\n<td>RUS<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>FPRO<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>312<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Acaron Fabiola<\/u><\/td>\n<td>PRI<\/td>\n<td><u>FJUNIOR<\/u><\/td>\n<td>...<\/td>\n<td>PUR<\/td>\n<td>FJUNIOR<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>294<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Acaron Fabiola<\/u><\/td>\n<td>PRI<\/td>\n<td><u>F45-49<\/u><\/td>\n<td>...<\/td>\n<td>PUR<\/td>\n<td>F45-49<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1500<\/td>\n<td><u>M<\/u><\/td>\n<td><u>Achampong Benjamin<\/u><\/td>\n<td>GBR<\/td>\n<td><u>M35-39<\/u><\/td>\n<td>...<\/td>\n<td>GBR<\/td>\n<td>M35-39<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>749<\/td>\n<td><u>F<\/u><\/td>\n<td><u>Achampong Benjamin<\/u><\/td>\n<td>GBR<\/td>\n<td><u>M35-39<\/u><\/td>\n<td>...<\/td>\n<td>GBR<\/td>\n<td>M35-39<\/td>\n<td>F<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0414\u0430, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438\u043c\u0435\u043d\u0430 \u0443\u043d\u0438\u0441\u0435\u043a\u0441 (\u0438\u043b\u0438 \u0430\u043d\u0434\u0440\u043e\u0433\u0438\u043d\u043d\u044b\u0435), \u0442\u043e \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0438 \u043c\u0430\u043b\u044c\u0447\u0438\u043a\u043e\u0432, \u0438 \u0434\u0435\u0432\u043e\u0447\u0435\u043a. \u0410 \u0434\u043b\u044f \u0430\u0437\u0438\u0430\u0442\u0441\u043a\u0438\u0445 \u0430\u0442\u043b\u0435\u0442\u043e\u0432 \u0432\u043e\u043e\u0431\u0449\u0435 \u0442\u0440\u0443\u0434\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u043b \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u2013 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043c\u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0437\u043d\u0430\u043d\u0438\u0439. \u041e\u0434\u043d\u0430\u043a\u043e, \u0441 \u0442\u0440\u0443\u0434\u043e\u043c \u0432\u0435\u0440\u0438\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u044f \u0418\u0440\u0438\u043d\u0430 \u0438\u043b\u0438 \u0410\u043d\u0430\u0441\u0442\u0430\u0441\u0438\u044f \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u043b\u043e \u043c\u0443\u0436\u0447\u0438\u043d\u0435, \u0430 \u0411\u0435\u043d\u0434\u0436\u0430\u043c\u0438\u043d\u043e\u043c \u0437\u0432\u0430\u043b\u0438 \u0436\u0435\u043d\u0449\u0438\u043d\u0443. \u0412 \u0434\u043e\u0431\u0430\u0432\u043e\u043a \u043a \u044d\u0442\u043e\u043c\u0443, \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043e\u0434\u043d\u0438\u043c \u043f\u043e\u043b\u043e\u043c. <\/p>\n<pre><code class=\"python\">rss = [rd[e] for e in rd if len(rd[e][rd[e]['sex'] != '']['sex'].unique()) == 1] #rss \u2013 races with single sex <\/code><\/pre>\n<p>  \u0412\u0441\u0435\u0433\u043e \u0438\u0445 633. \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u044d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0436\u0435\u043d\u0449\u0438\u043d\u0430\u043c, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u043c\u0443\u0436\u0447\u0438\u043d\u0430\u043c. \u041d\u043e \u0434\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u043e\u0431\u043e\u0438\u0445 \u043f\u043e\u043b\u043e\u0432 (\u043c\u0443\u0436\u0441\u043a\u0438\u0435 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u044b <i>M<\/i>, \u0436\u0435\u043d\u0441\u043a\u0438\u0435 \u2013 \u0441 \u0431\u0443\u043a\u0432\u044b <i>F<\/i>). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <code>'ITU World Cup Tiszaujvaros Olympic 2002'  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>place<\/th>\n<th><u>sex<\/u><\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th><u>group raw<\/u><\/th>\n<th>name raw<\/th>\n<\/tr>\n<tr>\n<td>76<\/td>\n<td><u>M<\/u><\/td>\n<td>Dederko Ewa<\/td>\n<td>POL<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>POL<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>Dederko Ewa<\/td>\n<\/tr>\n<tr>\n<td>84<\/td>\n<td><u>M<\/u><\/td>\n<td>Chenevier Giunia<\/td>\n<td>ITA<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>ITA<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>Chenevier Giunia<\/td>\n<\/tr>\n<tr>\n<td>36<\/td>\n<td><u>M<\/u><\/td>\n<td>O'Grady Graham<\/td>\n<td>NZL<\/td>\n<td>MPRO<\/td>\n<td>...<\/td>\n<td>NZL<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>O'Grady Graham<\/td>\n<\/tr>\n<tr>\n<td>23<\/td>\n<td><u>M<\/u><\/td>\n<td>Danek Michal<\/td>\n<td>CZE<\/td>\n<td>MPRO<\/td>\n<td>...<\/td>\n<td>CZE<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>Danek Michal<\/td>\n<\/tr>\n<tr>\n<td>74<\/td>\n<td><u>M<\/u><\/td>\n<td>Peon Carole<\/td>\n<td>FRA<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>FRA<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>Peon Carole<\/td>\n<\/tr>\n<tr>\n<td>48<\/td>\n<td><u>M<\/u><\/td>\n<td>Hechenblaickner Daniel<\/td>\n<td>AUT<\/td>\n<td>MPRO<\/td>\n<td>...<\/td>\n<td>AUT<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>Hechenblaickner Daniel<\/td>\n<\/tr>\n<tr>\n<td>70<\/td>\n<td><u>M<\/u><\/td>\n<td>Blatchford Liz<\/td>\n<td>GBR<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>GBR<\/td>\n<td><u>FPRO<\/u><\/td>\n<td>Blatchford Liz<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td><u>M<\/u><\/td>\n<td>Walton Craig<\/td>\n<td>AUS<\/td>\n<td>MPRO<\/td>\n<td>...<\/td>\n<td>AUS<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>Walton Craig<\/td>\n<\/tr>\n<tr>\n<td>20<\/td>\n<td><u>M<\/u><\/td>\n<td>Hobor Peter<\/td>\n<td>HUN<\/td>\n<td>MPRO<\/td>\n<td>...<\/td>\n<td>HUN<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>Hobor Peter<\/td>\n<\/tr>\n<tr>\n<td>56<\/td>\n<td><u>M<\/u><\/td>\n<td>Kaldau Szabolcs<\/td>\n<td>HUN<\/td>\n<td>MPRO<\/td>\n<td>...<\/td>\n<td>HUN<\/td>\n<td><u>MPRO<\/u><\/td>\n<td>Kaldau Szabolcs<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u041e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u044b <i>M<\/i> \u0434\u043b\u044f \u043c\u0443\u0436\u0447\u0438\u043d \u0438 \u0441 \u0431\u0443\u043a\u0432\u044b <i>F<\/i> \u0434\u043b\u044f \u0436\u0435\u043d\u0449\u0438\u043d. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0434\u0432\u0443\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>sex<\/i>, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0432\u0441\u0435 \u0435\u0449\u0435, \u0432\u0440\u043e\u0434\u0435 \u0431\u044b, \u0432\u0435\u0440\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u043e \u043f\u043e\u043b \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430. \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0432\u0435\u0440\u043d\u043e, \u0430 \u043f\u043e\u043b \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e. \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438, \u0433\u0434\u0435 \u043f\u0435\u0440\u0432\u0430\u044f \u0431\u0443\u043a\u0432\u0430 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u043b\u0443. \u0411\u0443\u0434\u0435\u043c \u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b <i>group raw<\/i>, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0431\u0435\u0437 \u0433\u0440\u0443\u043f\u043f\u044b, \u043d\u043e \u043d\u0430\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0443\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0431\u0443\u043a\u0432\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u043d\u0435 \u0432\u0430\u0436\u0435\u043d. <\/p>\n<pre><code class=\"python\">ar['grflc'] = ar['group raw'].str.upper().str[0] #grflc \u2013 group raw first letter capital grncs = ar[(ar['grflc'].isin(['M','F']))&(ar['sex']!=ar['grflc'])] #grncs \u2013 group raw not consistent with sex<\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 26 161. \u041d\u0435\u043c\u0430\u043b\u043e. \u0427\u0442\u043e \u0436, \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u043f\u043e\u043b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b:<\/p>\n<pre><code class=\"python\">ar.loc[grncs.index, 'sex'] = grncs['grflc'] <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th><u>sex<\/u><\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th><u>group raw<\/u><\/th>\n<th><u>sex raw<\/u><\/th>\n<th>grflc<\/th>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>59<\/td>\n<td><u>F<\/u><\/td>\n<td>Ueda Ai<\/td>\n<td>JPN<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>JPN<\/td>\n<td><u>FPRO<\/u><\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>50<\/td>\n<td><u>F<\/u><\/td>\n<td>Zemanova Lenka<\/td>\n<td>CZE<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>CZE<\/td>\n<td><u>FPRO<\/u><\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>83<\/td>\n<td><u>F<\/u><\/td>\n<td>Spearing Kyleigh<\/td>\n<td>USA<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>USA<\/td>\n<td><u>FPRO<\/u><\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>63<\/td>\n<td><u>F<\/u><\/td>\n<td>Abysova Irina<\/td>\n<td>RUS<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td><u>FPRO<\/u><\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>57<\/td>\n<td><u>F<\/u><\/td>\n<td>Knapp Anja<\/td>\n<td>DEU<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>GER<\/td>\n<td><u>FPRO<\/u><\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>68<\/td>\n<td><u>M<\/u><\/td>\n<td>Matthews Andrew<\/td>\n<td>GBR<\/td>\n<td>M30-34<\/td>\n<td>...<\/td>\n<td>GBR<\/td>\n<td><u>M30-34<\/u><\/td>\n<td><u>F<\/u><\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>46<\/td>\n<td><u>F<\/u><\/td>\n<td>Rappaport Summer<\/td>\n<td>USA<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>USA<\/td>\n<td><u>FPRO<\/u><\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>60<\/td>\n<td><u>F<\/u><\/td>\n<td>Reid Aileen<\/td>\n<td>IRL<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>IRL<\/td>\n<td><u>FPRO<\/u><\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>142<\/td>\n<td><u>F<\/u><\/td>\n<td>Mcdowall Edwina<\/td>\n<td>GBR<\/td>\n<td>F45-49<\/td>\n<td>...<\/td>\n<td>GBR<\/td>\n<td><u>F45-49<\/u><\/td>\n<td><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>141<\/td>\n<td><u>M<\/u><\/td>\n<td>O'Bray Luke<\/td>\n<td>GBR<\/td>\n<td>M30-34<\/td>\n<td>...<\/td>\n<td>GBR<\/td>\n<td><u>M30-34<\/u><\/td>\n<td><\/td>\n<td>M<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0425\u043e\u0440\u043e\u0448\u043e. \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u0435\u0437 \u043f\u043e\u043b\u0430?<\/p>\n<pre><code class=\"python\">ar[(ar['sex'] == '')&(ar['name'] != '')] <\/code><\/pre>\n<p>  \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u043d\u0430!<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th><u>sex<\/u><\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th><u>group raw<\/u><\/th>\n<th><u>sex raw<\/u><\/th>\n<th>grflc<\/th>\n<\/tr>\n<tr>\n<td>London Triathlon Olympic 2019<\/td>\n<td>672<\/td>\n<td><\/td>\n<td>Stather Emily<\/td>\n<td>GBR<\/td>\n<td><\/td>\n<td>...<\/td>\n<td>GBR<\/td>\n<td><u>unknown<\/u><\/td>\n<td><\/td>\n<td>U<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><br \/>  \u0427\u0442\u043e \u0436, \u0433\u0440\u0443\u043f\u043f\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0430, \u043d\u043e, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u044d\u0442\u043e \u0436\u0435\u043d\u0449\u0438\u043d\u0430. \u042d\u043c\u0438\u043b\u0438 \u2013 \u0436\u0435\u043d\u0441\u043a\u043e\u0435 \u0438\u043c\u044f, \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u044d\u0442\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u0446\u0430 (\u0438\u043b\u0438 \u0435\u0435 \u0442\u0435\u0437\u043a\u0430) \u0444\u0438\u043d\u0438\u0448\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0433\u043e\u0434\u043e\u043c \u0440\u0430\u043d\u0435\u0435, \u0438 \u0432 \u0442\u043e\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043f\u043e\u043b \u0438 \u0433\u0440\u0443\u043f\u043f\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u044b. <br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th><u>sex<\/u><\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th><u>group<\/u><\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th>group raw<\/th>\n<th><u>sex raw<\/u><\/th>\n<th>grflc<\/th>\n<\/tr>\n<tr>\n<td>Ironman Staffordshire 70.3 2018<\/td>\n<td>1859<\/td>\n<td><u>F<\/u><\/td>\n<td>Stather Emily<\/td>\n<td>GBR<\/td>\n<td><u>F40-44<\/u><\/td>\n<td>...<\/td>\n<td>GBR<\/td>\n<td>F40-44<\/td>\n<td><u>F<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><br \/>  \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0437\u0434\u0435\u0441\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e* \u0438 \u043f\u043e\u0439\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435. <\/p>\n<pre><code class=\"python\">ar.loc[arns.index, 'sex'] = 'F' <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043f\u043e\u043b\u043e\u043c. <\/p>\n<p>  <i>*\u0412\u043e\u043e\u0431\u0449\u0435, \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u2013 \u043f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u043e\u043d\u0430\u0445 \u0435\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0432 \u0446\u0435\u043f\u043e\u0447\u043a\u0435 \u0434\u043e \u044d\u0442\u043e\u0433\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u0438\u043c\u0435\u043d\u0438, \u0442\u043e\u0433\u0434\u0430 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u0435\u0437 \u043f\u043e\u043b\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0439, \u0438 \u043d\u0435 \u0432\u0441\u0435 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0436\u0435\u043d\u0441\u043a\u0438\u043c\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u044f\u0436\u0435\u043b\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u0441 \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u0438\u043c\u0435\u043d\u0435\u043c \u0438 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u0430 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u0445, \u043a\u0430\u043a \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0430, \u0438 \u043a\u0430\u043a \u0442\u043e \u0435\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043b\u0438\u0431\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043b\u0438\u0448\u043d\u0435 \u043d\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c, \u043a \u044d\u0442\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443, \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u0438 \u0438\u043c\u044f \u0442\u0430\u043a\u043e\u0435-\u0442\u043e, \u0438\u043d\u0430\u0447\u0435 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430, \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u043f\u043b\u0430\u043d\u0430 \u0438 \u0432\u043c\u0435\u0448\u0430\u0442\u044c\u0441\u044f.<\/i><\/p>\n<pre><code class=\"python\">if len(arns) == 1 and arns['name'].iloc[0] == 'Stather Emily':     ar.loc[arns.index, 'sex'] = 'F' else:     raise Exception('Different scenario!') <\/code><\/pre>\n<p>  \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0438 \u0443\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f. \u041d\u043e \u0434\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0447\u0442\u043e \u0433\u0440\u0443\u043f\u043f\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0432\u0435\u0440\u043d\u043e. \u0418 \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0430\u043a. \u041f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430. \u041f\u043e\u0447\u0442\u0438. \u0412\u0441\u0435-\u0442\u0430\u043a\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0441\u0442\u044b\u043a\u043e\u0432\u043e\u043a \u0431\u044b\u043b\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0445 \u0432\u0441\u0435, \u043d\u0443 \u0438\u043b\u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435. \u041a\u0430\u043a \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c, \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043d\u0430\u0441\u0442\u043e\u0440\u043e\u0436\u0438\u043b\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u043b \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0438\u043c\u0435\u043d\u0438 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043e \u043c\u0443\u0436\u0441\u043a\u0438\u0445 \u0438 \u0436\u0435\u043d\u0441\u043a\u0438\u0445 \u0438\u043c\u0435\u043d\u0430\u0445. <\/p>\n<p>  \u041d\u0430\u0439\u0434\u0435\u043c \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 \u0443 \u043c\u0443\u0436\u0441\u043a\u0438\u0445 \u0438 \u0436\u0435\u043d\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0417\u0434\u0435\u0441\u044c \u043f\u043e\u0434 \u0438\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u043c\u044f, \u0430 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f, \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u0435\u0437 \u0444\u0430\u043c\u0438\u043b\u0438\u0438, \u0442\u043e, \u0447\u0442\u043e \u043f\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <i>first name<\/i>.<\/p>\n<pre><code class=\"python\">ar['fn'] = ar['name'].str.split().str[-1] #fn \u2013 first name mfn = list(ar[ar['sex'] == 'M']['fn'].unique()) #mfn \u2013 male first names <\/code><\/pre>\n<p>  \u0412\u0441\u0435\u0433\u043e \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 32 508 \u043c\u0443\u0436\u0441\u043a\u0438\u0445 \u0438\u043c\u0435\u043d. \u0412\u043e\u0442 50 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445:<br \/>  <code>['Michael', 'David', 'Thomas', 'John', 'Daniel', 'Mark', 'Peter', 'Paul', 'Christian', 'Robert', 'Martin', 'James', 'Andrew', 'Chris', 'Richard', 'Andreas', 'Matthew', 'Brian', 'Kevin', 'Patrick', 'Scott', 'Stefan', 'Jason', 'Eric', 'Alexander', 'Christopher', 'Simon', 'Mike', 'Tim', 'Frank', 'Stephen', 'Steve', 'Jonathan', 'Marco', 'Markus', 'Adam', 'Ryan', 'Tom', 'Jan', 'Marc', 'Carlos', 'Matt', 'Steven', 'Jeff', 'Sergey', 'William', 'Aleksandr', 'Andrey', 'Benjamin', 'Jose']<br \/>  <\/code><\/p>\n<pre><code class=\"python\">ffn = list(ar[ar['sex'] == 'F']['fn'].unique()) #ffn \u2013 female first names <\/code><\/pre>\n<p>  \u0416\u0435\u043d\u0441\u043a\u0438\u0445 \u043c\u0435\u043d\u044c\u0448\u0435 \u2013 14 423. C\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435:<br \/>  <code>['Jennifer', 'Sarah', 'Laura', 'Lisa', 'Anna', 'Michelle', 'Maria', 'Andrea', 'Nicole', 'Jessica', 'Julie', 'Elizabeth', 'Stephanie', 'Karen', 'Christine', 'Amy', 'Rebecca', 'Susan', 'Rachel', 'Anne', 'Heather', 'Kelly', 'Barbara', 'Claudia', 'Amanda', 'Sandra', 'Julia', 'Lauren', 'Melissa', 'Emma', 'Sara', 'Katie', 'Melanie', 'Kim', 'Caroline', 'Erin', 'Kate', 'Linda', 'Mary', 'Alexandra', 'Christina', 'Emily', 'Angela', 'Catherine', 'Claire', 'Elena', 'Patricia', 'Charlotte', 'Megan', 'Daniela']<br \/>  <\/code><br \/>  \u0425\u043e\u0440\u043e\u0448\u043e, \u0432\u0440\u043e\u0434\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043b\u043e\u0433\u0438\u0447\u043d\u043e. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0441\u0442\u044c \u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f. <\/p>\n<pre><code class=\"python\">mffn = set(mfn).intersection(ffn) #mffn \u2013 male-female first names <\/code><\/pre>\n<p>  \u0415\u0441\u0442\u044c. \u0418 \u0438\u0445 2 811. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0438\u0445 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0443\u0437\u043d\u0430\u0435\u043c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438: <\/p>\n<pre><code class=\"python\">armfn = ar[ar['fn'].isin(mffn)] #armfn \u2013 all records with male-female names <\/code><\/pre>\n<p>  \u0418\u0445 725 562. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430! \u042d\u0442\u043e \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e! \u0412\u0441\u0435\u0433\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u043f\u043e\u0447\u0442\u0438 37 000, \u043d\u043e \u0443 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u043e\u0431\u0449\u0435\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e 2 800. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0438\u043c\u0435\u043d\u0430, \u043a\u0430\u043a\u0438\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c, \u0433\u0434\u0435 \u044d\u0442\u0438 \u0438\u043c\u0435\u043d\u0430 \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438:<\/p>\n<pre><code class=\"python\">df = pd.DataFrame(armfn['fn'].value_counts()) df = df.rename(columns={'fn':'total'}) <\/code><\/pre>\n<p>  \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0443\u0436\u0441\u043a\u0438\u0445 \u0438 \u0436\u0435\u043d\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0437 \u043d\u0438\u0445.<\/p>\n<pre><code class=\"python\">df['M'] = armfn[armfn['sex'] == 'M']['fn'].value_counts() df['F'] = armfn[armfn['sex'] == 'F']['fn'].value_counts() <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>total<\/th>\n<th>M<\/th>\n<th>F<\/th>\n<\/tr>\n<tr>\n<td>Michael<\/td>\n<td>20648<\/td>\n<td>20638<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>David<\/td>\n<td>18493<\/td>\n<td>18485<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>Thomas<\/td>\n<td>12746<\/td>\n<td>12740<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>John<\/td>\n<td>11634<\/td>\n<td>11632<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>Daniel<\/td>\n<td>11045<\/td>\n<td>11041<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>Mark<\/td>\n<td>10968<\/td>\n<td>10965<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>Peter<\/td>\n<td>10692<\/td>\n<td>10691<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>Paul<\/td>\n<td>9616<\/td>\n<td>9614<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>Christian<\/td>\n<td>8863<\/td>\n<td>8859<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>Robert<\/td>\n<td>8666<\/td>\n<td>8664<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0422\u0430\u043a\u2026 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0432\u0441\u0435 \u044d\u0442\u0438 \u0438\u043c\u0435\u043d\u0430 \u043c\u0443\u0436\u0441\u043a\u0438\u0435. \u041d\u043e \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0437 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0436\u0435\u043d\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445. <\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0436\u0435\u043d\u0441\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u0430. <\/p>\n<pre><code class=\"python\">df.sort_values(by = 'F', ascending=False) <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>total<\/th>\n<th>M<\/th>\n<th>F<\/th>\n<\/tr>\n<tr>\n<td>Jennifer<\/td>\n<td>3652<\/td>\n<td>3<\/td>\n<td>3649<\/td>\n<\/tr>\n<tr>\n<td>Sarah<\/td>\n<td>3288<\/td>\n<td>4<\/td>\n<td>3284<\/td>\n<\/tr>\n<tr>\n<td>Laura<\/td>\n<td>2636<\/td>\n<td>3<\/td>\n<td>2633<\/td>\n<\/tr>\n<tr>\n<td>Lisa<\/td>\n<td>2618<\/td>\n<td>2<\/td>\n<td>2616<\/td>\n<\/tr>\n<tr>\n<td>Anna<\/td>\n<td>2563<\/td>\n<td>10<\/td>\n<td>2553<\/td>\n<\/tr>\n<tr>\n<td>Michelle<\/td>\n<td>2373<\/td>\n<td>1<\/td>\n<td>2372<\/td>\n<\/tr>\n<tr>\n<td>Maria<\/td>\n<td>2555<\/td>\n<td>386<\/td>\n<td>2169<\/td>\n<\/tr>\n<tr>\n<td>Andrea<\/td>\n<td>4323<\/td>\n<td>2235<\/td>\n<td>2088<\/td>\n<\/tr>\n<tr>\n<td>Nicole<\/td>\n<td>2025<\/td>\n<td>6<\/td>\n<td>2019<\/td>\n<\/tr>\n<tr>\n<td>Julie<\/td>\n<td>1938<\/td>\n<td>2<\/td>\n<td>1936<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<td>...<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435. \u041f\u043e\u0447\u0442\u0438. \u0412\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f <i>Andrea<\/i>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043d\u0434\u0440\u043e\u0433\u0438\u043d\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c, \u0438 \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 <i>Maria<\/i>, \u0443\u0436\u0435 \u043f\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435. <\/p>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043b\u044e\u0434\u0435\u0439 \u0438\u0437 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443. \u0412 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0430\u0445 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0438\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440. <i>Karen<\/i> \u2014 \u043e\u0434\u043d\u043e \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0436\u0435\u043d\u0441\u043a\u0438\u0445 \u0438\u043c\u0435\u043d \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u043d\u043e \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0435\u0441\u0442\u044c \u0438\u043c\u044f <i>\u041a\u0430\u0440\u00e9\u043d<\/i>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a \u0436\u0435, \u043d\u043e \u043d\u043e\u0441\u044f\u0442 \u0435\u0433\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0443\u0436\u0447\u0438\u043d\u044b. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0430\u043a\u0435\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u0442 \u0432\u0441\u044e \u044d\u0442\u0443 \u043c\u0438\u0440\u043e\u0432\u0443\u044e \u043c\u0443\u0434\u0440\u043e\u0441\u0442\u044c. \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/pypi.org\/project\/gender-guesser\/\"><i>gender-guesser<\/i><\/a>. <\/p>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u043d \u0442\u0430\u043a: <\/p>\n<pre><code class=\"python\">import gender_guesser.detector as gg  d = gg.Detector() d.get_gender(u'Oleg')<\/code><\/pre>\n<p>  <code><b>Out:<\/b> 'male'<br \/>  <\/code><\/p>\n<pre><code class=\"python\">d.get_gender(u'Evgeniya') <\/code><\/pre>\n<p>  <code><b>Out:<\/b> 'female'<br \/>  <\/code><br \/>  \u0412\u0441\u0435 \u043a\u043b\u0430\u0441\u0441\u043d\u043e. \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u043c\u044f <i>Andrea<\/i>, \u0442\u043e \u043e\u043d \u0442\u043e\u0436\u0435 \u0432\u044b\u0434\u0430\u0435\u0442 <i>female<\/i>, \u0447\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0432\u0435\u0440\u043d\u043e. \u041f\u0440\u0430\u0432\u0434\u0430 \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0432\u044b\u0445\u043e\u0434. \u0415\u0441\u043b\u0438 \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c, \u043d\u0430 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <i>names<\/i> \u0443 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430, \u0442\u043e \u0442\u0430\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0438\u0434\u043d\u043e \u0432\u0441\u044e \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0441\u0442\u044c. <\/p>\n<pre><code class=\"python\">d.names['Andrea'] <\/code><\/pre>\n<p>  <code><b>Out: <\/b>{'female': ' 4 4 3 4788 64 579 34 1 7 ',<br \/>   'mostly_female': '5 6 7 ',<br \/>   'male': ' 7 '}<br \/>  <\/code><br \/>  \u0410\u0433\u0430, \u0442\u043e \u0435\u0441\u0442\u044c <i>get_gender<\/i> \u0432\u044b\u0434\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0432\u0441\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043c\u0435\u043d\u0430: <\/p>\n<pre><code class=\"python\">d.names['Maria'] <\/code><\/pre>\n<p>  <code><b>Out:<\/b> {'female': '686 6 A 85986 A BA 3B98A75457 6 ',<br \/>   'mostly_female': ' BBC A 678A9 '}<br \/>  <\/code><\/p>\n<pre><code class=\"python\">d.names['Oleg'] <\/code><\/pre>\n<p>  <code><b>Out:<\/b> {'male': ' 6 2 99894737 3 '}<br \/>  <\/code><br \/>  \u0422\u043e \u0435\u0441\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 <i>names<\/i> \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u043c\u0435\u043d\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u0430 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440 \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0433\u0434\u0435 \u043a\u043b\u044e\u0447 \u2013 \u044d\u0442\u043e \u043f\u043e\u043b: <i>male, female, mostly_male, mostly_female, andy<\/i>, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2013 \u0441\u043f\u0438\u0441\u043e\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0435: <i>1,2,3 \u2026 9ABC..<\/i>. \u0421\u0442\u0440\u0430\u043d\u044b \u0442\u0430\u043a\u0438\u0435:<\/p>\n<pre><code class=\"python\">d.COUNTRIES<\/code><\/pre>\n<p>  <code><b>Out:<\/b> ['great_britain', 'ireland', 'usa', 'italy', 'malta', 'portugal', 'spain', 'france', 'belgium', 'luxembourg', 'the_netherlands', 'east_frisia', 'germany', 'austria', 'swiss', 'iceland', 'denmark', 'norway', 'sweden', 'finland', 'estonia', 'latvia', 'lithuania', 'poland', 'czech_republic', 'slovakia', 'hungary', 'romania', 'bulgaria', 'bosniaand', 'croatia', 'kosovo', 'macedonia', 'montenegro', 'serbia', 'slovenia', 'albania', 'greece', 'russia', 'belarus', 'moldova', 'ukraine', 'armenia', 'azerbaijan', 'georgia', 'the_stans', 'turkey', 'arabia', 'israel', 'china', 'india', 'japan', 'korea', 'vietnam', 'other_countries']<br \/>  <\/code> <br \/>  \u042f \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043d\u0435 \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u0446\u0438\u0444\u0440\u043e-\u0431\u0443\u043a\u0432\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0438\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435. \u041d\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0438 \u043d\u0435 \u0432\u0430\u0436\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u044f \u0440\u0435\u0448\u0438\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0445 \u0438\u043c\u0435\u043d, \u0447\u0442\u043e \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0435 \u0442\u043e\u043b\u043a\u043e\u0432\u0430\u043d\u0438\u0435. \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u043f\u0430\u0440\u0430 \u043a\u043b\u044e\u0447-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043a\u043b\u044e\u0447 \u2013 \u044d\u0442\u043e \u043b\u0438\u0431\u043e <i>male<\/i>, \u043b\u0438\u0431\u043e <i>female<\/i>. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438 \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u0430, \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044e <i>gender-guesser<\/i>:<\/p>\n<pre><code class=\"python\">df['sex from gg'] = ''  for n in df.index:     if n in list(d.names.keys()):         options = list(d.names[n].keys())         if len(options) == 1 and options[0] == 'male':             df.loc[n, 'sex from gg'] = 'M'         if len(options) == 1 and options[0] == 'female':             df.loc[n, 'sex from gg'] = 'F'<\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c 1 150 \u0438\u043c\u0435\u043d. \u0412\u043e\u0442 \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0432\u044b\u0448\u0435:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>total<\/th>\n<th>M<\/th>\n<th>F<\/th>\n<th>sex from gg<\/th>\n<\/tr>\n<tr>\n<td>Michael<\/td>\n<td>20648<\/td>\n<td>20638<\/td>\n<td>10<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>David<\/td>\n<td>18493<\/td>\n<td>18485<\/td>\n<td>8<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>Thomas<\/td>\n<td>12746<\/td>\n<td>12740<\/td>\n<td>6<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>John<\/td>\n<td>11634<\/td>\n<td>11632<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>Daniel<\/td>\n<td>11045<\/td>\n<td>11041<\/td>\n<td>4<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>Mark<\/td>\n<td>10968<\/td>\n<td>10965<\/td>\n<td>3<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>Peter<\/td>\n<td>10692<\/td>\n<td>10691<\/td>\n<td>1<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>Paul<\/td>\n<td>9616<\/td>\n<td>9614<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>Christian<\/td>\n<td>8863<\/td>\n<td>8859<\/td>\n<td>4<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Robert<\/td>\n<td>8666<\/td>\n<td>8664<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><br \/>   <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>total<\/th>\n<th>M<\/th>\n<th>F<\/th>\n<th>sex from gg<\/th>\n<\/tr>\n<tr>\n<td>Jennifer<\/td>\n<td>3652<\/td>\n<td>3<\/td>\n<td>3649<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>Sarah<\/td>\n<td>3288<\/td>\n<td>4<\/td>\n<td>3284<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>Laura<\/td>\n<td>2636<\/td>\n<td>3<\/td>\n<td>2633<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>Lisa<\/td>\n<td>2618<\/td>\n<td>2<\/td>\n<td>2616<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>Anna<\/td>\n<td>2563<\/td>\n<td>10<\/td>\n<td>2553<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>Michelle<\/td>\n<td>2373<\/td>\n<td>1<\/td>\n<td>2372<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>Maria<\/td>\n<td>2555<\/td>\n<td>386<\/td>\n<td>2169<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Andrea<\/td>\n<td>4323<\/td>\n<td>2235<\/td>\n<td>2088<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Nicole<\/td>\n<td>2025<\/td>\n<td>6<\/td>\n<td>2019<\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>Julie<\/td>\n<td>1938<\/td>\n<td>2<\/td>\n<td>1936<\/td>\n<td><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0427\u0442\u043e \u0436, \u043d\u0435\u043f\u043b\u043e\u0445\u043e. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u044d\u0442\u0443 \u043b\u043e\u0433\u0438\u043a\u0443 \u043a\u043e \u0432\u0441\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044f\u043c. <\/p>\n<pre><code class=\"python\">all_names = ar['fn'].unique()  male_names = [] female_names = []  for n in all_names:     if n in list(d.names.keys()):         options = list(d.names[n].keys())         if len(options) == 1:             if options[0] == 'male':                 male_names.append(n)             if options[0] == 'female':                 female_names.append(n)<\/code><\/pre>\n<p>  \u041d\u0430\u0439\u0434\u0435\u043d\u043e 7 091 \u043c\u0443\u0436\u0441\u043a\u0438\u0445 \u0438\u043c\u0435\u043d \u0438 5 054 \u0436\u0435\u043d\u0441\u043a\u0438\u0445. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435:<\/p>\n<pre><code class=\"python\">tofixm = ar[ar['fn'].isin(male_names)] ar.loc[tofixm.index, 'sex'] = 'M' tofixf = ar[ar['fn'].isin(female_names)] ar.loc[tofixf.index, 'sex'] = 'F'<\/code><\/pre>\n<p>  \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<pre><code class=\"python\">ar[ar['sex']!=ar['sex raw']] <\/code><\/pre>\n<p>  \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e 30 352 \u0437\u0430\u043f\u0438\u0441\u0438 (\u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0433\u0440\u0443\u043f\u043f\u044b). \u041a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, 10 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th><u>sex<\/u><\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th>group raw<\/th>\n<th><u>sex raw<\/u><\/th>\n<th>grflc<\/th>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>37<\/td>\n<td><u>F<\/u><\/td>\n<td>Pilz Christiane<\/td>\n<td>DEU<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>GER<\/td>\n<td>FPRO<\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>92<\/td>\n<td><u>F<\/u><\/td>\n<td>Brault Sarah-Anne<\/td>\n<td>CAN<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>CAN<\/td>\n<td>FPRO<\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>96<\/td>\n<td><u>F<\/u><\/td>\n<td>Murphy Susanna<\/td>\n<td>IRL<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>IRL<\/td>\n<td>FPRO<\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>105<\/td>\n<td><u>F<\/u><\/td>\n<td>Spoelder Romy<\/td>\n<td>NLD<\/td>\n<td><\/td>\n<td>...<\/td>\n<td>NED<\/td>\n<td>FJUNIOR<\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>424<\/td>\n<td><u>M<\/u><\/td>\n<td>Watson Tom<\/td>\n<td>GBR<\/td>\n<td>M40-44<\/td>\n<td>...<\/td>\n<td>GBR<\/td>\n<td>M40-44<\/td>\n<td><u>F<\/u><\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>81<\/td>\n<td><u>F<\/u><\/td>\n<td>Morel Charlotte<\/td>\n<td>FRA<\/td>\n<td><\/td>\n<td>...<\/td>\n<td>FRA<\/td>\n<td>FJUNIOR<\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>65<\/td>\n<td><u>F<\/u><\/td>\n<td>Selekhova Olga<\/td>\n<td>RUS<\/td>\n<td><\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>FU23<\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>166<\/td>\n<td><u>F<\/u><\/td>\n<td>Keat Rebekah<\/td>\n<td>AUS<\/td>\n<td><\/td>\n<td>...<\/td>\n<td>AUS<\/td>\n<td>FJUNIOR<\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>119<\/td>\n<td><u>F<\/u><\/td>\n<td>Eim Nina<\/td>\n<td>DEU<\/td>\n<td><\/td>\n<td>...<\/td>\n<td>GER<\/td>\n<td>FQUAL\u2026<\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>73<\/td>\n<td><u>F<\/u><\/td>\n<td>Sukhoruchenkova Evgenia<\/td>\n<td>RUS<\/td>\n<td>FPRO<\/td>\n<td>...<\/td>\n<td>RUS<\/td>\n<td>FPRO<\/td>\n<td><u>M<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0422\u0435\u043f\u0435\u0440\u044c, \u0440\u0430\u0437 \u0443\u0436 \u043c\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u043f\u043e\u043b, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0433\u0434\u0435 \u043e\u043d\u0438 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442:<\/p>\n<pre><code class=\"python\">ar['gfl'] = ar['group'].str[0] gncws = ar[(ar['sex'] != ar['gfl']) & (ar['group']!='')]<\/code><\/pre>\n<p>  4 248 \u0437\u0430\u043f\u0438\u0441\u0438. \u0417\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0431\u0443\u043a\u0432\u0443:<\/p>\n<pre><code class=\"python\">ar.loc[gncws.index, 'group'] = ar.loc[gncws.index, 'sex'] + ar.loc[gncws.index, 'group'].str[1:].index, 'sex'] <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th><u>sex<\/u><\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th><u>group<\/u><\/th>\n<th>...<\/th>\n<th>country raw<\/th>\n<th><u>group raw<\/u><\/th>\n<th>sex raw<\/th>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>803<\/td>\n<td><u>F<\/u><\/td>\n<td>Kenney Joelle<\/td>\n<td>USA<\/td>\n<td><u>F35-39<\/u><\/td>\n<td>...<\/td>\n<td>USA<\/td>\n<td><u>M35-39<\/u><\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1432<\/td>\n<td><u>M<\/u><\/td>\n<td>Holmberg Henriette Gorm<\/td>\n<td>DNK<\/td>\n<td><u>M45-49<\/u><\/td>\n<td>...<\/td>\n<td>DEN<\/td>\n<td><u>F45-49<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>503<\/td>\n<td><u>M<\/u><\/td>\n<td>Tai Oy Leen<\/td>\n<td>MYS<\/td>\n<td><u>M40-44<\/u><\/td>\n<td>...<\/td>\n<td>MAS<\/td>\n<td><u>F40-44<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>236<\/td>\n<td><u>F<\/u><\/td>\n<td>Dissanayake Aruna<\/td>\n<td>LKA<\/td>\n<td><u>F25-29<\/u><\/td>\n<td>...<\/td>\n<td>SRI<\/td>\n<td><u>M25-29<\/u><\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1349<\/td>\n<td><u>F<\/u><\/td>\n<td>Delos Reyes Joshua Rafaelle<\/td>\n<td>PHL<\/td>\n<td><u>F18-24<\/u><\/td>\n<td>...<\/td>\n<td>PHI<\/td>\n<td><u>M18-24<\/u><\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>543<\/td>\n<td><u>F<\/u><\/td>\n<td>Vandekendelaere Janique<\/td>\n<td>BEL<\/td>\n<td><u>F50-54<\/u><\/td>\n<td>...<\/td>\n<td>BEL<\/td>\n<td><u>M50-54<\/u><\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1029<\/td>\n<td><u>M<\/u><\/td>\n<td>Provost Shaun<\/td>\n<td>USA<\/td>\n<td><u>M25-29<\/u><\/td>\n<td>...<\/td>\n<td>USA<\/td>\n<td><u>F25-29<\/u><\/td>\n<td>F<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>303<\/td>\n<td><u>F<\/u><\/td>\n<td>Torrens Vadell Macia<\/td>\n<td>ESP<\/td>\n<td><u>F30-34<\/u><\/td>\n<td>...<\/td>\n<td>ESP<\/td>\n<td><u>M30-34<\/u><\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>1338<\/td>\n<td><u>F<\/u><\/td>\n<td>Suarez Renan<\/td>\n<td>BOL<\/td>\n<td><u>F35-39<\/u><\/td>\n<td>...<\/td>\n<td>BOL<\/td>\n<td><u>M35-39<\/u><\/td>\n<td>M<\/td>\n<\/tr>\n<tr>\n<td>...<\/td>\n<td>502<\/td>\n<td><u>F<\/u><\/td>\n<td>Everlo Linda<\/td>\n<td>NLD<\/td>\n<td><u>F30-34<\/u><\/td>\n<td>...<\/td>\n<td>NED<\/td>\n<td><u>M30-34<\/u><\/td>\n<td>M<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0433\u0434\u0435-\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c\u0438, \u043d\u043e \u0432\u0441\u0435 \u0440\u0430\u043d\u043e \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u043e\u043d\u0438 \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u044c\u0437\u044b \u0447\u0435\u043c \u0432\u0440\u0435\u0434\u0430. \u0414\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e.<\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u0441 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u0430 \u0432\u0441\u0435. \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c\u0441\u044f. <\/p>\n<pre><code class=\"python\">pkl.dump(rd, open(r'D:\\tri\\details8.pkl', 'wb')) <\/code><\/pre>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0435, \u0441 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h3>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0434\u043a\u0438<\/h3>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0434\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u043c\u0443\u0436\u0447\u0438\u043d \u0438 \u0436\u0435\u043d\u0449\u0438\u043d, \u0438 \u0434\u0440. <\/p>\n<pre><code class=\"python\">rs['total raw'] = rs['total'] rs['males raw'] = rs['males'] rs['females raw'] = rs['females'] rs['rus raw'] = rs['rus']  for i in rs.index:     e = rs.loc[i,'event']     rs.loc[i,'total'] = len(rd[e])     rs.loc[i,'males'] = len(rd[e][rd[e]['sex'] == 'M'])     rs.loc[i,'females'] = len(rd[e][rd[e]['sex'] == 'F'])     rs.loc[i,'rus'] = len(rd[e][rd[e]['country'] == 'RUS'])  len(rs[rs['total'] != rs['total raw']])<\/code><\/pre>\n<p>  <code><b>Out:<\/b> 288<br \/>  <\/code><\/p>\n<pre><code class=\"python\">len(rs[rs['males'] != rs['males raw']]) <\/code><\/pre>\n<p>  <code><b>Out:<\/b>962<br \/>  <\/code><\/p>\n<pre><code class=\"python\">len(rs[rs['females'] != rs['females raw']]) <\/code><\/pre>\n<p>  <code><b>Out:<\/b> 836<br \/>  <\/code><\/p>\n<pre><code class=\"python\">len(rs[rs['rus'] != rs['rus raw']]) <\/code><\/pre>\n<p>  <code><b>Out:<\/b> 8<br \/>  <\/code><\/p>\n<pre><code class=\"python\">pkl.dump(rs, open(r'D:\\tri\\summary6.pkl', 'wb')) <\/code><\/pre>\n<p>  <\/p>\n<h2>\u0427\u0430\u0441\u0442\u044c 4. \u0412\u044b\u0431\u043e\u0440\u043a\u0430<\/h2>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0435\u043d. \u0417\u0430 \u0441\u0435\u0437\u043e\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0442\u043b\u0435\u0442\u043e\u0432, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439. \u041d\u043e \u0442\u0430\u043a \u0431\u044b\u043b\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430. \u0412 \u043d\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 1990 \u0433\u043e\u0434\u0430. \u041f\u0440\u043e\u043b\u0438\u0441\u0442\u044b\u0432\u0430\u044f tristats.ru \u044f \u0437\u0430\u043c\u0435\u0442\u0438\u043b, \u0447\u0442\u043e \u0433\u043e\u043d\u043e\u043a \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0433\u043e\u0434\u044b, \u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e \u0432 \u043f\u0435\u0440\u0432\u044b\u0435. \u041d\u043e \u0442\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u044b, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u044d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e. <\/p>\n<h3>\u0414\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u043d\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434<\/h3>\n<p>  \u041f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0433\u043e\u043d\u043e\u043a \u0438 \u0444\u0438\u043d\u0438\u0448\u0435\u0440\u043e\u0432 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0433\u043e\u0434\u0443:<\/p>\n<pre><code class=\"python\">rs['year'] = pd.DatetimeIndex(rs['date']).year years = range(rs['year'].min(),rs['year'].max()) rsy = pd.DataFrame(columns = ['races', 'finishers', 'rus', 'RUS'], index = years) #rsy \u2013 races summary by year  for y in rsy.index:     rsy.loc[y,'races'] = len(rs[rs['year'] == y])     rsy.loc[y,'finishers'] = sum(rs[rs['year'] == y]['total'])     rsy.loc[y,'rus'] =  sum(rs[rs['year'] == y]['rus'])     rsy.loc[y,'RUS'] = len(rs[(rs['year'] == y)&(rs['country'] == 'RUS')]) <\/code><\/pre>\n<p>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>year<\/th>\n<th>races<\/th>\n<th>finishers<\/th>\n<th>rus<\/th>\n<th>RUS<\/th>\n<\/tr>\n<tr>\n<td>1990<\/td>\n<td>1<\/td>\n<td>286<\/td>\n<td>5<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1991<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1992<\/td>\n<td>1<\/td>\n<td>317<\/td>\n<td>3<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1993<\/td>\n<td>2<\/td>\n<td>887<\/td>\n<td>3<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1994<\/td>\n<td>2<\/td>\n<td>128<\/td>\n<td>3<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1995<\/td>\n<td>3<\/td>\n<td>731<\/td>\n<td>7<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1996<\/td>\n<td>3<\/td>\n<td>776<\/td>\n<td>6<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1997<\/td>\n<td>3<\/td>\n<td>403<\/td>\n<td>11<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1998<\/td>\n<td>4<\/td>\n<td>583<\/td>\n<td>21<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>1999<\/td>\n<td>10<\/td>\n<td>1106<\/td>\n<td>26<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>2000<\/td>\n<td>10<\/td>\n<td>1231<\/td>\n<td>29<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>2001<\/td>\n<td>11<\/td>\n<td>1992<\/td>\n<td>32<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>2002<\/td>\n<td>21<\/td>\n<td>2249<\/td>\n<td>100<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>2003<\/td>\n<td>30<\/td>\n<td>3152<\/td>\n<td>158<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>2004<\/td>\n<td>19<\/td>\n<td>5488<\/td>\n<td>128<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2005<\/td>\n<td>16<\/td>\n<td>3024<\/td>\n<td>244<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2006<\/td>\n<td>29<\/td>\n<td>6210<\/td>\n<td>369<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2007<\/td>\n<td>44<\/td>\n<td>12153<\/td>\n<td>444<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2008<\/td>\n<td>43<\/td>\n<td>13830<\/td>\n<td>369<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2009<\/td>\n<td>49<\/td>\n<td>27047<\/td>\n<td>478<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2010<\/td>\n<td>47<\/td>\n<td>26528<\/td>\n<td>366<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2011<\/td>\n<td>77<\/td>\n<td>45412<\/td>\n<td>848<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>2012<\/td>\n<td>96<\/td>\n<td>75590<\/td>\n<td>1055<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>2013<\/td>\n<td>98<\/td>\n<td>86617<\/td>\n<td>2165<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>2014<\/td>\n<td>135<\/td>\n<td>138018<\/td>\n<td>3188<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>2015<\/td>\n<td>164<\/td>\n<td>172375<\/td>\n<td>4846<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>2016<\/td>\n<td>192<\/td>\n<td>178630<\/td>\n<td>7541<\/td>\n<td>27<\/td>\n<\/tr>\n<tr>\n<td>2017<\/td>\n<td>238<\/td>\n<td>185473<\/td>\n<td>8825<\/td>\n<td>42<\/td>\n<\/tr>\n<tr>\n<td>2018<\/td>\n<td>278<\/td>\n<td>203031<\/td>\n<td>10954<\/td>\n<td>54<\/td>\n<\/tr>\n<tr>\n<td>2019<\/td>\n<td>293<\/td>\n<td>220901<\/td>\n<td>13354<\/td>\n<td>59<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><i>RUS<\/i> \u2013 \u0433\u043e\u043d\u043a\u0438 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438. <i>rus<\/i> \u2013 \u0444\u0438\u043d\u0438\u0448\u0435\u0440\u044b \u0438\u0437 \u0420\u043e\u0441\u0441\u0438\u0438.<\/p>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/nx\/yg\/4s\/nxyg4syvd0x-0f16nxl1ucvhyma.png\"\/><\/p>\n<p>  \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0433\u043e\u043d\u043e\u043a \u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0441\u043e\u0438\u0437\u043c\u0435\u0440\u0438\u043c\u044b. \u0417\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0433\u043e\u043d\u043e\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 2011 \u0433\u043e\u0434\u0430, \u0442\u043e\u0433\u0434\u0430 \u0436\u0435 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0440\u0442\u043e\u0432 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u043e\u0441\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0435\u0449\u0435 \u0432 2009 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u0432\u043e\u0437\u0440\u043e\u0441\u0448\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435 \u0441\u0440\u0435\u0434\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u0440\u043e\u0441\u0448\u0435\u043c \u0441\u043f\u0440\u043e\u0441\u0435, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u043f\u0443\u0441\u0442\u044f \u0434\u0432\u0430 \u0433\u043e\u0434\u0430 \u0432\u043e\u0437\u0440\u043e\u0441\u043b\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u0440\u0442\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u043d\u044b\u043c\u0438 \u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e, \u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0433\u043e\u043d\u043a\u0438 \u0432 \u043d\u0438\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0441\u0431\u043e\u0440\u0443 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 2010 \u0433\u043e\u0434\u0443, \u0447\u0442\u043e \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0430\u0447\u043e\u043a \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u044f \u0440\u0435\u0448\u0438\u043b \u0432\u0437\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 10 \u043b\u0435\u0442. \u042d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434, \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0442\u0440\u0435\u043d\u0434\u044b \u0437\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0447\u0442\u043e\u0431\u044b \u0442\u0443\u0434\u0430 \u043d\u0435 \u043f\u043e\u043f\u0430\u043b\u0438, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c, \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437 90-\u0445 \u0438 \u043d\u0430\u0447\u0430\u043b\u0430 2000-\u0445.<\/p>\n<pre><code class=\"python\">rs = rs[(rs['year']&gt;=2010)&(rs['year']&lt;= 2019)] <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ck\/p4\/qf\/ckp4qfjucrjhl7kvu-0fyv_ilbc.png\"\/><\/p>\n<p>  \u0412 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434, \u043a\u0441\u0442\u0430\u0442\u0438, \u043f\u043e\u043f\u0430\u043b\u043e 84% \u0433\u043e\u043d\u043e\u043a \u0438 94% \u0444\u0438\u043d\u0438\u0448\u0435\u0440\u043e\u0432.<\/p>\n<h3>\u041b\u044e\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u0442\u0430\u0440\u0442\u044b<\/h3>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u043e\u0434\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0430\u0440\u0442\u043e\u0432 \u2014 \u044d\u0442\u043e \u0430\u0442\u043b\u0435\u0442\u044b-\u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u043d\u0438\u043c. \u0427\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u044d\u0442\u043e \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0434\u043b\u044f \u043c\u0435\u043d\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0430\u043c \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0442\u0430\u0440\u0442\u0430\u0445, \u043d\u043e \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u043b\u0435\u043a \u043e\u0442 \u043e\u043b\u0438\u043c\u043f\u0438\u0439\u0441\u043a\u0438\u0445 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u043e\u0432. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0442\u043e\u0436\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u0438 \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043f\u043e \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c \u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0433\u043e\u043d\u043a\u0430\u043c, \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435. \u041a\u0430\u043a \u0438\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c? \u041f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044f\u043c. \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u0438\u0445. \u041d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u044d\u0442\u0430\u043f\u043e\u0432 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u044b \u0443\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u043a\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0431\u044b\u043b \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043e\u043d\u043a\u0435 \u2013 \u0441\u043f\u0440\u0438\u043d\u0442, \u043e\u043b\u0438\u043c\u043f\u0438\u0439\u0441\u043a\u0430\u044f, \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0430, \u0436\u0435\u043b\u0435\u0437\u043d\u0430\u044f. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0447\u0435\u0442\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u0430\u0436 \u044d\u0442\u0430\u043f\u043e\u0432 \u2013 \u043f\u043b\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e, \u0432\u0435\u043b\u043e \u0438 \u0431\u0435\u0433\u043e\u0432\u043e\u0433\u043e. \u042d\u0442\u043e 0.75+20+5 \u0434\u043b\u044f \u0441\u043f\u0440\u0438\u043d\u0442\u0430, 1.5+40+10 \u0434\u043b\u044f \u043e\u043b\u0438\u043c\u043f\u0438\u0439\u0441\u043a\u043e\u0439, 1.9+90+21.1 \u0434\u043b\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0438 \u0438 3.8+180+42.2 \u0434\u043b\u044f \u0436\u0435\u043b\u0435\u0437\u043d\u043e\u0439. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e \u0444\u0430\u043a\u0442\u0443, \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0437\u043d\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0433\u043e\u043d\u043a\u0438 \u043a \u0433\u043e\u043d\u043a\u0435 \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430, \u043d\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435\u0442\u0443, \u0442\u0430\u043a \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u0442\u043e\u0447\u043d\u043e.<\/p>\n<pre><code class=\"python\">rs['km'] = ''  rs.loc[rs['dist'] == 'sprint', 'km'] = 0.75+20+5 rs.loc[rs['dist'] == 'olympic', 'km'] = 1.5+40+10 rs.loc[rs['dist'] == 'half', 'km'] = 1.9+90+21.1 rs.loc[rs['dist'] == 'full', 'km'] = 3.8+180+42.2 <\/code><\/pre>\n<p>  \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043e\u043d\u043a\u0435. \u041f\u043e\u0434 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0430\u0442\u043b\u0435\u0442\u0430, \u0437\u0430\u043d\u044f\u0432\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e. <\/p>\n<pre><code class=\"python\">for index, row in rs.iterrows():     e = row['event']     rd[e]['th'] = pd.TimedeltaIndex(rd[e]['result']).seconds\/3600     rd[e]['v'] = rs.loc[i, 'km'] \/ rd[e]['th']  for index, row in rs.iterrows():     e = row['event']     rs.loc[index,'vmax'] = rd[e]['v'].max()     rs.loc[index,'vavg'] = rd[e]['v'].mean() <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/81\/6k\/pe\/816kpel94nzs-hsp9dphfdhtq3g.png\"\/><\/p>\n<p>  \u0427\u0442\u043e \u0436, \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0435\u0439 \u0441\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u043a\u0443\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043c\u0435\u0436\u0434\u0443 15 \u043a\u043c\/\u0447 \u0438 30 \u043a\u043c\/\u0447, \u043d\u043e \u0435\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u00ab\u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445\u00bb \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0445:<\/p>\n<pre><code class=\"python\">rs = rs.sort_values(by='vavg') <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/aa\/wi\/ws\/aawiwsx0kcmhzyq3y3ezcm_fy0o.png\"\/><\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u0448\u043a\u0430\u043b\u0443 \u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e. \u0414\u043b\u044f \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0435\u0439 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0442 17 \u043a\u043c\/\u0447 \u0434\u043e 27 \u043a\u043c\/\u0447, \u0434\u043b\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u2013 \u043e\u0442 18 \u043a\u043c\/\u0447 \u0434\u043e 32 \u043a\u043c\/\u0447. \u041f\u043b\u044e\u0441 \u0435\u0441\u0442\u044c \u00ab\u0445\u0432\u043e\u0441\u0442\u044b\u00bb \u0441 \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u0438\u043c\u0438 \u0438 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u0438\u043c\u0438 \u0441\u0440\u0435\u0434\u043d\u0438\u043c\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044f\u043c\u0438. \u041d\u0438\u0437\u043a\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u044d\u043a\u0441\u0442\u0440\u0435\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0442\u0438\u043f\u0430 <i>Norseman<\/i>, \u0430 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u043c \u043f\u043b\u0430\u0432\u0430\u043d\u0438\u0435\u043c, \u0433\u0434\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u043f\u0440\u0438\u043d\u0442\u0430 \u0431\u044b\u043b \u0441\u0443\u043f\u0435\u0440\u0441\u043f\u0440\u0438\u043d\u0442, \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2013 \u043f\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0443\u043f\u0435\u043d\u044c\u043a\u0430 \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 <i>1200<\/i> \u043f\u043e \u043e\u0441\u0438 <i>\u0425<\/i>, \u0438 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0435. \u0422\u0430\u043c \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0443\u044e \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u0440\u0435\u0434\u043d\u0438\u043c\u0438 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044f\u043c\u0438, \u0447\u0435\u043c \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u0432\u0443\u0445 \u0442\u0440\u0435\u0442\u044f\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u0430. \u0421\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u044d\u0442\u043e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0445 \u0431\u043e\u043b\u0435\u0435 \u044f\u0432\u043d\u043e, \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043a \u0441\u0440\u0435\u0434\u043d\u0435\u0439. \u041d\u0430 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u0445, \u0433\u0434\u0435 \u043d\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043b\u044e\u0434\u0435\u0439 \u0438 \u0443 \u0432\u0441\u0435\u0445 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438, \u044d\u0442\u043e \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>  \u0441\u043f\u043e\u0440\u0442, \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430, \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043a\u0440\u0430\u043f\u043f\u0438\u043d\u0433, \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0441\u0430\u0439\u0442\u043e\u0432, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, pandas<\/p>\n<pre><code class=\"python\">rs['vmdbva'] = rs['vmax']\/rs['vavg'] #vmdbva - v max divided by v avg rs = rs.sort_values(by='vmdbva') <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/li\/cv\/pr\/licvprwpcx3zlws5pjufo0dxhcm.png\"\/><\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043f\u0435\u0440\u0432\u0430\u044f \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0447\u0435\u0442\u043a\u043e: \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043a \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435, \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u043c\u0430\u043b\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432. \u042d\u0442\u043e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u0442\u0443\u043f\u0435\u043d\u044c\u043a\u0430 \u043d\u0430 \u0437\u0435\u043b\u0435\u043d\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 1.2. \u041e\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u043d\u0430\u0448\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 1.2. <\/p>\n<pre><code class=\"python\">rs = rs[rs['vmdbva'] &gt; 1.2] <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u0443\u0431\u0435\u0440\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043e \u043d\u0435\u0442\u0438\u043f\u0438\u0447\u043d\u044b\u043c\u0438 \u043d\u0438\u0437\u043a\u0438\u043c\u0438 \u0438 \u0432\u044b\u0441\u043e\u043a\u0438\u043c\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044f\u043c\u0438. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/triathlonmagazine.ca\/uncategorized\/what-are-the-triathlon-world-records-for-each-distance\/\"><i>What are the triathlon \u201cworld records\u201d for each distance?<\/i><\/a> \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u044b \u0440\u0435\u043a\u043e\u0440\u0434\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u043d\u0430 2019 \u0433\u043e\u0434. \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0448\u0435 33 \u043a\u043c\/\u0447 \u0434\u0430\u0436\u0435 \u0443 \u0441\u0430\u043c\u044b\u0445 \u0431\u044b\u0441\u0442\u0440\u044b\u0445. \u0422\u0430\u043a \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b, \u0433\u0434\u0435 \u0441\u0440\u0435\u0434\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0432\u044b\u0448\u0435, \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c\u0438 \u0438 \u0443\u0431\u0435\u0440\u0435\u043c \u0438\u0445 \u0438\u0437 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f. <\/p>\n<pre><code class=\"python\">rs = rs[(rs['vavg'] &gt; 17)&(rs['vmax'] &lt; 33)] <\/code><\/pre>\n<p>  \u0412\u043e\u0442, \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c: <br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/t1\/dk\/_p\/t1dk_pixaznwxlfsunkxpx5yfum.png\"\/><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qk\/9u\/4a\/qk9u4anxmpnwehsdhckfn64ucvw.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u043e \u0438 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u0442\u0431\u043e\u0440\u0430 \u043c\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0438 777 \u0438\u0437 1922 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432, \u0438\u043b\u0438 40%. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0438\u043d\u0438\u0448\u0435\u0440\u043e\u0432 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u0441\u0438\u043b\u044c\u043d\u043e \u2013 \u0432\u0441\u0435\u0433\u043e \u043d\u0430 13%. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c 1 145 \u0433\u043e\u043d\u043e\u043a \u0441 1 231 772 \u0444\u0438\u043d\u0438\u0448\u0435\u0440\u0430\u043c\u0438. \u042d\u0442\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0438 \u0441\u0442\u0430\u043b\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c \u0434\u043b\u044f \u043c\u043e\u0435\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. <\/p>\n<h2>\u0427\u0430\u0441\u0442\u044c 5. \u0410\u043d\u0430\u043b\u0438\u0437 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h2>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0430\u043d\u0430\u043b\u0438\u0437 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0438 \u0441\u0430\u043c\u044b\u043c\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0447\u0430\u0441\u0442\u044f\u043c\u0438. \u0412\u0435\u0440\u0445\u0443\u0448\u043a\u043e\u0439 \u0430\u0439\u0441\u0431\u0435\u0440\u0433\u0430, \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u044b\u043b\u0430 \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u0410\u043d\u0430\u043b\u0438\u0437, \u043f\u043e \u0441\u0443\u0442\u0438, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0441\u043e\u0431\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 <i>pandas Series<\/i>, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u043d\u0438\u0445, \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u2013 \u0432\u0441\u0435 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 <i>pandas<\/i> \u0438 \u0432 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u043a\u043e\u0434\u0435 \u043f\u043e\u043b\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u0435\u043b\u0430\u043b\u0430\u0441\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0438\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0435\u0439\u0448\u0435\u0433\u043e <i>matplotlib<\/i>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c <i>plot, bar, pie<\/i>. \u041a\u043e\u0435-\u0433\u0434\u0435, \u043f\u0440\u0430\u0432\u0434\u0430, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u0434\u043f\u0438\u0441\u044f\u043c\u0438 \u043e\u0441\u0435\u0439, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u0430\u0442 \u0438 \u043f\u0438\u043a\u0442\u043e\u0433\u0440\u0430\u043c\u043c, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0442\u044f\u043d\u0435\u0442 \u043d\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0437\u0434\u0435\u0441\u044c. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u043f\u0440\u043e \u0447\u0442\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u044d\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0433\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u044d\u0442\u043e \u043d\u0435 <i>matplotlib<\/i>. <\/p>\n<h3>\u0413\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0435<\/h3>\n<p>  \u041f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u043e\u043d\u043a\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043c\u0435\u0441\u0442\u0435 \u0435\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f. \u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <i>geopy<\/i> \u043c\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043b\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u043e\u043a\u0430\u0446\u0438\u0438. \u041c\u043d\u043e\u0433\u0438\u0435 \u0433\u043e\u043d\u043a\u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0435\u0436\u0435\u0433\u043e\u0434\u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u0438 \u0442\u043e\u043c \u0436\u0435 \u043c\u0435\u0441\u0442\u0435. <br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>event<\/th>\n<th>date<\/th>\n<th>country<\/th>\n<th><u>latitude<\/u><\/th>\n<th><u>longitude<\/u><\/th>\n<th>loc<\/th>\n<th>\u2026<\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>Ironman Indian Wells La Quinta 70.3 2019<\/td>\n<td>2019-12-08<\/td>\n<td>USA<\/td>\n<td><u>33.7238<\/u><\/td>\n<td><u>-116.305<\/u><\/td>\n<td>Indian Wells\/La Quinta, California, USA<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>Ironman Taupo 70.3 2019<\/td>\n<td>2019-12-07<\/td>\n<td>NZL<\/td>\n<td><u>-41.5001<\/u><\/td>\n<td><u>172.834<\/u><\/td>\n<td>New Zealand<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>Ironman Western Australia 2019<\/td>\n<td>2019-12-01<\/td>\n<td>AUS<\/td>\n<td><u>-33.6445<\/u><\/td>\n<td><u>115.349<\/u><\/td>\n<td>Busselton, Western Australia<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Ironman Mar del Plata 2019<\/td>\n<td>2019-12-01<\/td>\n<td>ARG<\/td>\n<td><u>-37.9977<\/u><\/td>\n<td><u>-57.5483<\/u><\/td>\n<td>Mar del Plata, Argentina<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>Ironman Cozumel 2019<\/td>\n<td>2019-11-24<\/td>\n<td>MEX<\/td>\n<td><u>20.4318<\/u><\/td>\n<td><u>-86.9203<\/u><\/td>\n<td>Cozumel, Mexico<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>Ironman Arizona 2019<\/td>\n<td>2019-11-24<\/td>\n<td>USA<\/td>\n<td><u>33.4255<\/u><\/td>\n<td><u>-111.94<\/u><\/td>\n<td>Tempe, Arizona, USA<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Ironman Xiamen 70.3 2019<\/td>\n<td>2019-11-10<\/td>\n<td>CHN<\/td>\n<td><u>24.4758<\/u><\/td>\n<td><u>118.075<\/u><\/td>\n<td>Xiamen, China<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>Ironman Turkey 70.3 2019<\/td>\n<td>2019-11-03<\/td>\n<td>TUR<\/td>\n<td><u>36.8633<\/u><\/td>\n<td><u>31.0578<\/u><\/td>\n<td>Belek, Antalya, Turkey<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>Ironman Florida 2019<\/td>\n<td>2019-11-02<\/td>\n<td>USA<\/td>\n<td><u>30.1766<\/u><\/td>\n<td><u>-85.8055<\/u><\/td>\n<td>Panama City Beach, Florida, USA<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>Ironman Marrakech 70.3 2019<\/td>\n<td>2019-10-27<\/td>\n<td>MAR<\/td>\n<td><u>31.6258<\/u><\/td>\n<td><u>-7.98916<\/u><\/td>\n<td>Marrakech, Morocco<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>Ironman Waco 70.3 2019<\/td>\n<td>2019-10-27<\/td>\n<td>USA<\/td>\n<td><u>31.5493<\/u><\/td>\n<td><u>-97.1467<\/u><\/td>\n<td>Waco, Texas, USA<\/td>\n<td>\u2026<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><br \/>  \u041e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0433\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0445 \u0432 <i>python<\/i> \u2013 \u044d\u0442\u043e <a href=\"https:\/\/pypi.org\/project\/folium\/0.1.5\/\"><i>folium<\/i><\/a>. \u0412\u043e\u0442 \u043a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:  <\/p>\n<pre><code class=\"python\">import folium  m = folium.Map()  folium.Marker(['55.7522200', '37.6155600'], popup='\u041c\u043e\u0441\u043a\u0432\u0430').add_to(m)<\/code><\/pre>\n<p>  \u0418 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u043f\u0440\u044f\u043c\u043e \u0432 \u044e\u043f\u0438\u0442\u0435\u0440 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/jc\/hp\/fs\/jchpfspvaahnnbvwtgwx2wqkppu.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a \u043d\u0430\u0448\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u043c. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0432\u0435\u0434\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0438\u0437 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442:<\/p>\n<pre><code class=\"python\">rs['coords'] = rs['latitude'].astype(str) + ', ' + rs['longitude'].astype(str)<\/code><\/pre>\n<p>  \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 <i>coords<\/i> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 291. \u0410 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u0446\u0438\u0439 <i>loc<\/i> \u2013 324, \u0437\u043d\u0430\u0447\u0438\u0442 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u0442\u043e\u0447\u043a\u0435. \u042d\u0442\u043e \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e <i>coords<\/i>. \u041f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043f\u0440\u043e\u0448\u043b\u043e \u0437\u0430 \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u043e\u043a\u0430\u0446\u0438\u0438 (\u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438):<\/p>\n<pre><code class=\"python\">vc = rs['coords'].value_counts()  vc<\/code><\/pre>\n<p>  <code><b>Out:<\/b><br \/>  43.7009358, 7.2683912 22<br \/>  43.5854823, 39.723109 20<br \/>  29.03970805, -13.636291 16<br \/>  47.3723941, 8.5423328 16<br \/>  59.3110918, 24.420907 15<br \/>  51.0834196, 10.4234469 15<br \/>  54.7585694, 38.8818137 14<br \/>  20.4317585, -86.9202745 13<br \/>  52.3727598, 4.8936041 12<br \/>  41.6132925, 2.6576102 12<br \/>  ... ...<br \/>  <\/code><br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u0430\u0440\u0442\u0443, \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0430 \u043d\u0435\u0435 \u043c\u0430\u0440\u043a\u0435\u0440\u044b \u0432 \u0432\u0438\u0434\u0435 \u043a\u0440\u0443\u0433\u043e\u0432, \u0440\u0430\u0434\u0438\u0443\u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u041a \u043c\u0430\u0440\u043a\u0435\u0440\u0430\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0438 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043b\u043e\u043a\u0430\u0446\u0438\u0438.<\/p>\n<pre><code class=\"python\">m = folium.Map(location=[25,10], zoom_start=2)  for c in rs['coords'].unique():     row = [r[1] for r in rs.iterrows() if r[1]['coords'] == c][0]         folium.Circle([row['latitude'], row['longitude']],  \t\t\t\t\tpopup=(row['location']+'\\n('+str(vc[c])+' races)'),  \t\t\t\t\tradius = 10000*int(vc[c]),  \t\t\t\t\tcolor='darkorange',  \t\t\t\t\tfill=True,  \t\t\t\t\tstroke=True,  \t\t\t\t\tweight=1).add_to(m)<\/code><\/pre>\n<p>  \u0413\u043e\u0442\u043e\u0432\u043e. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ch\/d4\/gj\/chd4gj0qbyjrzyjikpmslgesw0i.png\"\/><\/p>\n<h3>\u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432<\/h3>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u0433\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430\u0434 \u0435\u0449\u0435 \u043e\u0434\u043d\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u0442\u043e\u0436\u0435 \u0431\u044b\u043b\u0430 \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e\u0439. \u042d\u0442\u043e \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439. \u0412\u043e\u0442 \u043e\u043d:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rf\/ca\/jq\/rfcajquw4qluhsw9wuhicbgk7rm.png\"\/><\/p>\n<p>  \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0435\u0433\u043e, \u0437\u0430\u043e\u0434\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043a\u043e\u0434 \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438, \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <i>matplotlib<\/i>:<\/p>\n<pre><code class=\"python\">fig = plt.figure() fig.set_size_inches(10, 6)  ax = fig.add_axes([0,0,1,1])  b = ax.bar(exp,numrecs, color = 'navajowhite')  ax1 = ax.twinx()  for i in range(len(exp_samp)):     ax1.plot(exp_samp[i], vproc_samp[i], '.') \t p, = ax1.plot(exp, vpm, 'o-',markersize=8, linewidth=2, color='C0')  for i in range(len(exp)):     if i &lt; len(exp)-1 and (vpm[i] &lt; vpm[i+1]):         ax1.text(x = exp[i]+0.1, y = vpm[i]-0.2, s = '{0:3.1f}%'.format(vpm[i]),size=12)     else:         ax1.text(x = exp[i]+0.1, y = vpm[i]+0.1, s = '{0:3.1f}%'.format(vpm[i]),size=12)  ax.legend((b,p), ('\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445', '\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c'),loc='center right') ax.set_xlabel('\u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0432 \u0433\u043e\u0434\u0430\u0445') ax.set_ylabel('\u0417\u0430\u043f\u0438\u0441\u0438') ax1.set_ylabel('% \u043e\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043d\u0430 \u0433\u043e\u043d\u043a\u0435') ax.set_xticks(np.arange(1, 11, step=1)) ax.set_yticks(np.arange(0, 230000, step=25000)) ax1.set_ylim(97.5,103.5) ax.yaxis.set_label_position(&quot;right&quot;) ax.yaxis.tick_right() ax1.yaxis.set_label_position(&quot;left&quot;) ax1.yaxis.tick_left()        plt.show()<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u043b\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043d\u0435\u0433\u043e. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0438\u043d\u0438\u0448\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u0432 \u0434\u0432\u0443\u0445 \u0433\u043e\u043d\u043a\u0430\u0445, \u043f\u0440\u0438\u0447\u0435\u043c \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0445 \u0433\u043e\u0434\u0430\u0445, \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0430\u043c\u0438.<\/p>\n<p>  \u0421\u043f\u0435\u0440\u0432\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u043c \u043d\u043e\u0432\u0443\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0443 <i>date<\/i>, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0434\u0430\u0442\u0430 \u0433\u043e\u043d\u043a\u0438. \u0422\u0430\u043a \u0436\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0433\u043e\u0434 \u0438\u0437 \u044d\u0442\u043e\u0439 \u0434\u0430\u0442\u044b, \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0443 <i>year<\/i>. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0430\u0442\u043b\u0435\u0442\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043d\u0430 \u0433\u043e\u043d\u043a\u0435, \u0441\u0440\u0430\u0437\u0443 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u044d\u0442\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <i>vproc<\/i> \u2013 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043e\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0439.<\/p>\n<pre><code class=\"python\">for index, row in rs.iterrows():     e = row['event']     rd[e]['date'] = row['date']     rd[e]['year'] = row['year']     rd[e]['vproc'] = 100 * rd[e]['v'] \/ rd[e]['v'].mean()<\/code><\/pre>\n<p>  \u0412\u043e\u0442, \u043a\u0430\u043a \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b:<br \/>  <code>'\u0427\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u0441\u0430\u043c\u0430\u0440\u0441\u043a\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 Sprint 2019'<\/code><br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th><\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>...<\/th>\n<th>th<\/th>\n<th>v<\/th>\n<th><u>date<\/u><\/th>\n<th><u>year<\/u><\/th>\n<th><u>vproc<\/u><\/th>\n<\/tr>\n<tr>\n<td>0<\/td>\n<td>1<\/td>\n<td>M<\/td>\n<td>Shalev Aleksey<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.161944<\/td>\n<td>22.161128<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>130.666668<\/u><\/td>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>2<\/td>\n<td>M<\/td>\n<td>Nikolaev Artem<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.228611<\/td>\n<td>20.958625<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>123.576458<\/u><\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>3<\/td>\n<td>M<\/td>\n<td>Kuchierskiy Aleksandr<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.255556<\/td>\n<td>20.508850<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>120.924485<\/u><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>4<\/td>\n<td>F<\/td>\n<td>Korchagina Mariya<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.297222<\/td>\n<td>19.850107<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>117.040401<\/u><\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>5<\/td>\n<td>M<\/td>\n<td>Solodov Ivan<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.298056<\/td>\n<td>19.837364<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>116.965263<\/u><\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>6<\/td>\n<td>M<\/td>\n<td>Bukin Sergey<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.300278<\/td>\n<td>19.803461<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>116.765365<\/u><\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>7<\/td>\n<td>M<\/td>\n<td>Lavrentev Dmitriy<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.300278<\/td>\n<td>19.803461<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>116.765365<\/u><\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>8<\/td>\n<td>M<\/td>\n<td>Dolgov Petr<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.321667<\/td>\n<td>19.482976<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>114.875719<\/u><\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>9<\/td>\n<td>M<\/td>\n<td>Bezruchenko Mikhailn<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.345000<\/td>\n<td>19.144981<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>112.882832<\/u><\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>10<\/td>\n<td>M<\/td>\n<td>Ryazantsev Dmitriy<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.359444<\/td>\n<td>18.941561<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>111.683423<\/u><\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>11<\/td>\n<td>M<\/td>\n<td>Ibragimov Ramil<\/td>\n<td>RUS<\/td>\n<td>...<\/td>\n<td>1.376389<\/td>\n<td>18.708375<\/td>\n<td><u>2019-09-14<\/u><\/td>\n<td><u>2019<\/u><\/td>\n<td><u>110.308511<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><br \/>  \u0414\u0430\u043b\u0435\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u0432\u0441\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u0432 \u043e\u0434\u0438\u043d \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c. <\/p>\n<pre><code class=\"python\">ar = pd.concat(rd) <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u043c \u0433\u043e\u0434\u0443:<\/p>\n<pre><code class=\"python\">ar1 = ar.drop_duplicates(subset = ['name','year'], keep='first') <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0438\u0437 \u0432\u0441\u0435\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u044d\u0442\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043d\u0430\u0439\u0434\u0435\u043c \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0430\u0436\u0434\u044b:<\/p>\n<pre><code class=\"python\">nvc = ar1['name'].value_counts() names = list(nvc[nvc &gt; 1].index) <\/code><\/pre>\n<p>  \u0442\u0430\u043a\u0438\u0445 219 890. \u0423\u0434\u0430\u043b\u0438\u043c \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u043c\u0435\u043d\u0430 \u043f\u0440\u043e-\u0430\u0442\u043b\u0435\u0442\u043e\u0432:<\/p>\n<pre><code class=\"python\">pro_names = ar[ar['group'].isin(['MPRO','FPRO'])]['name'].unique() names = list(set(names) - set(pro_names)) <\/code><\/pre>\n<p>  \u0410 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u043d\u0430 \u0430\u0442\u043b\u0435\u0442\u043e\u0432, \u043d\u0430\u0447\u0430\u0432\u0448\u0438\u0445 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0434\u043e 2010 \u0433\u043e\u0434\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u043b\u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 10 \u043b\u0435\u0442. \u041f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0438\u0445 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u044b <i>rsa<\/i> (races summary all) \u0438 <i>rda<\/i> (race details all).<\/p>\n<pre><code class=\"python\">rdo = {}   for e in rda:         if rsa[rsa['event'] == e]['year'].iloc[0] &lt; 2010:         rdo[e] = rda[e]  aro = pd.concat(rdo) old_names = aro['name'].unique() names = list(set(names) - set(old_names))<\/code><\/pre>\n<p>  \u0418 \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u043d\u0430\u0439\u0434\u0435\u043c \u0438\u043c\u0435\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0430 \u0432 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0434\u0435\u043d\u044c. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u043b\u043d\u044b\u0445 \u0442\u0435\u0437\u043e\u043a \u0432 \u043d\u0430\u0448\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435. <\/p>\n<pre><code class=\"python\">namesakes = ar[ar.duplicated(subset = ['name','date'], keep = False)]['name'].unique() names = list(set(names) - set(namesakes)) <\/code><\/pre>\n<p>  \u0418\u0442\u0430\u043a, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c 198 075 \u0438\u043c\u0435\u043d. \u0418\u0437 \u0432\u0441\u0435\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438:<\/p>\n<pre><code class=\"python\">ars = ar[ar['name'].isin(names)] #ars \u2013 all rec\u043erds selected<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u043c\u0443 \u0433\u043e\u0434\u0443 \u0432 \u043a\u0430\u0440\u044c\u0435\u0440\u0435 \u0430\u0442\u043b\u0435\u0442\u0430 \u043e\u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u2013 \u043f\u0435\u0440\u0432\u043e\u043c\u0443, \u0432\u0442\u043e\u0440\u043e\u043c\u0443, \u0442\u0440\u0435\u0442\u044c\u0435\u043c\u0443, \u0438\u043b\u0438 \u0434\u0435\u0441\u044f\u0442\u043e\u043c\u0443. \u0414\u0435\u043b\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u043f\u043e \u0432\u0441\u0435\u043c \u0438\u043c\u0435\u043d\u0430\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c.<\/p>\n<pre><code class=\"python\">ars['exp'] = '' #exp \u2013 experience, counted in years of racing, starts from 1.  for n in names:         ind = ars[ars['name'] == n].index      yos = ars.loc[ind, 'year'].min() #yos \u2013 year of start     ars.loc[ind, 'exp'] = ars.loc[ind, 'year'] - yos + 1  <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<br \/>  <code><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<th>event<\/th>\n<th>place<\/th>\n<th>sex<\/th>\n<th>name<\/th>\n<th>country<\/th>\n<th>group<\/th>\n<th>\u2026<\/th>\n<th>th<\/th>\n<th>v<\/th>\n<th>date<\/th>\n<th><u>year<\/u><\/th>\n<th>vproc<\/th>\n<th><u>exp<\/u><\/th>\n<\/tr>\n<tr>\n<td>\u2026<\/td>\n<td>633<\/td>\n<td>M<\/td>\n<td>Golovin Sergey<\/td>\n<td>RUS<\/td>\n<td>M40-44<\/td>\n<td>\u2026<\/td>\n<td>5.356111<\/td>\n<td>21.097397<\/td>\n<td>2014-08-31<\/td>\n<td><u>2014<\/u><\/td>\n<td>106.036879<\/td>\n<td><u>1<\/u><\/td>\n<\/tr>\n<tr>\n<td>\u2026<\/td>\n<td>302<\/td>\n<td>M<\/td>\n<td>Golovin Sergey<\/td>\n<td>RUS<\/td>\n<td>M40-44<\/td>\n<td>\u2026<\/td>\n<td>11.236389<\/td>\n<td>20.113223<\/td>\n<td>2015-08-30<\/td>\n<td><u>2015<\/u><\/td>\n<td>108.231254<\/td>\n<td><u>2<\/u><\/td>\n<\/tr>\n<tr>\n<td>\u2026<\/td>\n<td>522<\/td>\n<td>M<\/td>\n<td>Golovin Sergey<\/td>\n<td>RUS<\/td>\n<td>M40-44<\/td>\n<td>\u2026<\/td>\n<td>10.402778<\/td>\n<td>21.724967<\/td>\n<td>2016-07-17<\/td>\n<td><u>2016<\/u><\/td>\n<td>111.265107<\/td>\n<td><u>3<\/u><\/td>\n<\/tr>\n<tr>\n<td>\u2026<\/td>\n<td>25<\/td>\n<td>M<\/td>\n<td>Golovin Sergey<\/td>\n<td>RUS<\/td>\n<td>M40-44<\/td>\n<td>\u2026<\/td>\n<td>10.910833<\/td>\n<td>20.713358<\/td>\n<td>2017-09-23<\/td>\n<td><u>2017<\/u><\/td>\n<td>112.953644<\/td>\n<td><u>4<\/u><\/td>\n<\/tr>\n<tr>\n<td>\u2026<\/td>\n<td>23<\/td>\n<td>M<\/td>\n<td>Golovin Sergey<\/td>\n<td>RUS<\/td>\n<td>M40-44<\/td>\n<td>\u2026<\/td>\n<td>4.700000<\/td>\n<td>24.042553<\/td>\n<td>2017-06-03<\/td>\n<td><u>2017<\/u><\/td>\n<td>120.565211<\/td>\n<td><u>4<\/u><\/td>\n<\/tr>\n<tr>\n<td>\u2026<\/td>\n<td>42<\/td>\n<td>M<\/td>\n<td>Golovin Sergey<\/td>\n<td>RUS<\/td>\n<td>M40-44<\/td>\n<td>\u2026<\/td>\n<td>4.599167<\/td>\n<td>24.569668<\/td>\n<td>2018-06-17<\/td>\n<td><u>2018<\/u><\/td>\n<td>124.579862<\/td>\n<td><u>5<\/u><\/td>\n<\/tr>\n<tr>\n<td>\u2026<\/td>\n<td>90<\/td>\n<td>M<\/td>\n<td>Golovin Sergey<\/td>\n<td>NOR<\/td>\n<td><\/td>\n<td>\u2026<\/td>\n<td>14.069167<\/td>\n<td>16.063496<\/td>\n<td>2018-08-04<\/td>\n<td><u>2018<\/u><\/td>\n<td>100.001834<\/td>\n<td><u>5<\/u><\/td>\n<\/tr>\n<tr>\n<td>\u2026<\/td>\n<td>86<\/td>\n<td>M<\/td>\n<td>Golovin Sergey<\/td>\n<td>RUS<\/td>\n<td>M45-49<\/td>\n<td>\u2026<\/td>\n<td>9.820556<\/td>\n<td>23.012955<\/td>\n<td>2019-08-03<\/td>\n<td><u>2019<\/u><\/td>\n<td>118.375766<\/td>\n<td><u>6<\/u><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p><\/code><br \/>  \u0421\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443, \u0442\u0435\u0437\u043a\u0438 \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c. \u042d\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e, \u043d\u043e \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u0441\u0435 \u0443\u0441\u0440\u0435\u0434\u043d\u044f\u0442\u044c, \u0430 \u0438\u0445 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e. \u0414\u0430\u043b\u0435\u0435 \u0441\u0442\u0440\u043e\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430:<\/p>\n<pre><code class=\"python\">exp = []  vpm = [] #vpm \u2013 v proc mean numrecs = [] #number of records  for x in range(ars['exp'].min(), ars['exp'].max() + 1):      exp.append(x)     vpm.append(ars[ars['exp'] == x]['vproc'].mean())     numrecs.append(len(ars[ars['exp'] == x]))<\/code><\/pre>\n<p>  \u0412\u0441\u0435, \u043e\u0441\u043d\u043e\u0432\u0430 \u0435\u0441\u0442\u044c:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/c4\/_p\/u6\/c4_pu61ixkiscputxq1qhfm84eg.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0440\u0430\u0441\u0438\u0442\u044c \u0435\u0433\u043e \u0442\u043e\u0447\u043a\u0430\u043c\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c, \u0432\u044b\u0431\u0435\u0440\u0435\u043c 1000 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u043d\u0438\u0445. <\/p>\n<pre><code class=\"python\">names_samp = random.sample(names,1000) ars_samp = ars[ars['name'].isin(names_samp)]  ars_samp = ars_samp.reset_index(drop = True) exp_samp = [] vproc_samp = []  for n in names_samp:     nr = ars_samp[ars_samp['name'] == n]     nr = nr.sort_values('exp')     exp_samp.append(list(nr['exp']))     vproc_samp.append(list(nr['vproc'])) <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0446\u0438\u043a\u043b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438\u0437 \u044d\u0442\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438.<\/p>\n<pre><code class=\"python\">for i in range(len(exp_samp)):     ax1.plot(exp_samp[i], vproc_samp[i], '.') <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uj\/0h\/ee\/uj0hee9v0tujesawdjz41fmfp0u.png\"\/><\/p>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c, \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e. \u041d\u043e \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u0414\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043e\u043f\u044b\u0442\u0430 <i>exp<\/i> \u0432 \u0446\u0438\u043a\u043b\u0435 \u0432\u0441\u0435\u043c \u0438\u043c\u0435\u043d\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0447\u0442\u0438 200 \u0442\u044b\u0441\u044f\u0447, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u0435\u043c\u044c \u0447\u0430\u0441\u043e\u0432. \u041f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0432\u044b\u0431\u043e\u0440\u043a\u0430\u0445, \u0430 \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442 \u043d\u0430 \u043d\u043e\u0447\u044c. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0442\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u043e, \u0435\u0441\u043b\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u043b\u0438, \u0447\u0442\u043e-\u0442\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c, \u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e, \u044d\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u0433\u0430\u0442\u044c. \u0418 \u0432\u043e\u0442, \u043a\u043e\u0433\u0434\u0430 \u044f \u0443\u0436\u0435 \u0432\u0435\u0447\u0435\u0440\u043e\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0447\u0435\u0442, \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0437\u0430\u043d\u043e\u0432\u043e. \u0416\u0434\u0430\u0442\u044c \u0434\u043e \u0443\u0442\u0440\u0430 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u043b\u043e \u0432 \u043c\u043e\u0438 \u043f\u043b\u0430\u043d\u044b, \u0438 \u044f \u0441\u0442\u0430\u043b \u0438\u0441\u043a\u0430\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u0420\u0435\u0448\u0438\u043b \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0442\u044c. <\/p>\n<p>  \u041d\u0430\u0448\u0435\u043b \u0433\u0434\u0435-\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <i>multiprocessing<\/i>. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043d\u0430 Windows, \u043d\u0443\u0436\u043d\u044b \u0431\u044b\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 <i>workers.py<\/i> \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"python\">import pickle as pkl  def worker(args):     names = args[0]     ars=args[1]     num=args[2]     ars = ars.sort_values(by='name')     ars = ars.reset_index(drop=True)        for n in names:            ind = ars[ars['name'] == n].index          yos = ars.loc[ind, 'year'].min()         ars.loc[ind, 'exp'] = ars.loc[ind, 'year'] - yos + 1                            with open(r'D:\\tri\\par\\prog' + str(num) + '.pkl', 'wb') as f:         pkl.dump(ars,f)<\/code><\/pre>\n<p>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0440\u0446\u0438\u044f \u0438\u043c\u0435\u043d <i>names<\/i>, \u0447\u0430\u0441\u0442\u044c \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u0430 <i>ar<\/i> \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u044d\u0442\u0438\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438, \u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 <i>num<\/i>. \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u0438, \u0432 \u043a\u043e\u043d\u0446\u0435, \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b. \u0412 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u043e <i>worker<\/i>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b: <\/p>\n<pre><code class=\"python\">num_proc = 8 #number of processors args = []  for i in range(num_proc):     step = int(len(names_samp)\/num_proc) + 1     names_i = names_samp[i*step:min((i+1)*step, len(names_samp))]     ars_i = ars[ars['name'].isin(names_i)]     args.append([names_i, ars_i, i])<\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"python\">from multiprocessing import Pool import workers  if __name__ ==  '__main__':          p=Pool(processes = num_proc)     p.map(workers.worker,args)<\/code><\/pre>\n<p>  \u0418 \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u0443\u0441\u043e\u0447\u043a\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0446\u0435\u043b\u044b\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c:<\/p>\n<pre><code class=\"python\">ars=pd.DataFrame(columns = ars.columns)  for i in range(num_proc):     with open(r'D:\\tri\\par\\prog'+str(i)+'.pkl', 'rb') as f:             arsi = pkl.load(f)         print(len(arsi))         ars = pd.concat([ars, arsi])<\/code><\/pre>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0432 40 \u0440\u0430\u0437, \u0438 \u0432\u043c\u0435\u0441\u0442\u043e 8 \u0447\u0430\u0441\u043e\u0432 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442 \u0437\u0430 11 \u043c\u0438\u043d\u0443\u0442 \u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \u0442\u0435\u043c \u0436\u0435 \u0432\u0435\u0447\u0435\u0440\u043e\u043c. \u0417\u0430\u043e\u0434\u043d\u043e \u0443\u0437\u043d\u0430\u043b, \u043a\u0430\u043a \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u0442\u044c \u043d\u0430 <i>python<\/i>, \u0434\u0443\u043c\u0430\u044e \u0435\u0449\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f. \u0417\u0434\u0435\u0441\u044c \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0432 8 \u0440\u0430\u0437 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u044f\u0434\u0435\u0440, \u0437\u0430 \u0441\u0447\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u043e\u0438\u0441\u043a \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f, \u043d\u043e \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u043a\u0430\u043a \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f?<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e, \u044f \u043d\u0435 \u043c\u043e\u0433 \u0443\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f \u0438 \u0434\u0430\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0434\u0443\u043c\u0430\u043b \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u0446\u0435\u043b\u044b\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c\u0438 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u0430 <i>pandas Series<\/i>. \u0422\u0430\u043a\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043b\u044e\u0431\u044b\u0445 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432, \u0445\u043e\u0442\u044c \u043d\u0430 \u0441\u0443\u043f\u0435\u0440\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u0418 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438 \u043d\u0430\u0439\u0442\u0438 \u0433\u043e\u0434 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0430\u0440\u044c\u0435\u0440\u044b, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u2013 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u043d\u0430\u0439\u0442\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043d\u0435\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u0438\u0437 \u043d\u0430\u0448\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438, \u044d\u0442\u043e 2010. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u044d\u0442\u043e\u0442 \u0433\u043e\u0434. \u0414\u0430\u043b\u0435\u0435 \u0431\u0435\u0440\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0433\u043e\u0434 \u2013 2011. <\/p>\n<p>  \u041e\u043f\u044f\u0442\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 \u0441 \u0437\u0430\u043f\u0438\u0441\u044f\u043c\u0438 \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443, \u043d\u043e \u0431\u0435\u0440\u0435\u043c \u0438\u0437 \u043d\u0438\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0438\u0441\u044c \u0432 2010 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c, \u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f 2011 \u0433\u043e\u0434. \u0418 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0433\u043e\u0434\u0430. \u0422\u043e\u0436\u0435 \u0446\u0438\u043a\u043b, \u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u0434\u0432\u0435\u0441\u0442\u0438 \u0442\u044b\u0441\u044f\u0447 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0430 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u0432\u044f\u0442\u044c. <\/p>\n<pre><code class=\"python\">for y in range(ars['year'].min(),ars['year'].max()):     arsynp = ars[(ars['exp'] == '') & (ars['year'] == y)] #arsynp - all records selected for year not processed     namesy = arsynp['name'].unique()     ind = ars[ars['name'].isin(namesy)].index     ars.loc[ind, 'exp'] = ars.loc[ind,'year'] - y + 1<\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u0446\u0438\u043a\u043b \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0437\u0430 \u043f\u0430\u0440\u0443 \u0441\u0435\u043a\u0443\u043d\u0434. \u0414\u0430 \u0438 \u043a\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u0435\u0435. <\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>  \u041d\u0443 \u0432\u043e\u0442, \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e, \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0431\u044b\u043b, \u043f\u043e \u0441\u0443\u0442\u0438, \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430. \u041a\u043e\u0433\u0434\u0430 \u044f \u0431\u0440\u0430\u043b\u0441\u044f \u0437\u0430 \u043d\u0435\u0433\u043e, \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e \u0431\u044b\u043b\u043e \u043f\u043e\u0443\u043f\u0440\u0430\u0436\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0438\u0442\u043e\u043d\u0430 \u0438 \u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u042d\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0441 \u043b\u0438\u0445\u0432\u043e\u0439. \u0414\u0430 \u0438 \u0441\u0430\u043c\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b\u0435. \u041a\u0430\u043a\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u044b \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438? <\/p>\n<p>  <b>\u041f\u0435\u0440\u0432\u043e\u0435:<\/b> \u0414\u0430\u043d\u043d\u044b\u0435 \u043d\u0435\u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b. \u042d\u0442\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0443. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b, \u0430 \u0432\u0435\u0434\u044c \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0438 \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443, \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c\u0438, \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0438 \u043a \u043f\u043e\u0438\u0441\u043a\u0443 \u0442\u0440\u0435\u043d\u0434\u043e\u0432 \u2013 \u043d\u0430\u0439\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0438, \u0432\u044b\u0431\u0440\u043e\u0441\u044b, \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0438 \u0442. \u0434.<\/p>\n<p>  <b>\u0412\u0442\u043e\u0440\u043e\u0435:<\/b> \u041b\u044e\u0431\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0438\u043c\u0435\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043b\u043e\u0437\u0443\u043d\u0433, \u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0442\u0430\u043a \u0438 \u0435\u0441\u0442\u044c. \u041f\u0440\u043e\u0441\u0442\u043e \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u0430\u043a\u0438\u043c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c \u0438 \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u043d\u0435 \u0432 \u0441\u0430\u043c\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c, outside of the box. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440 \u2013 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u043c\u0435\u043d \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0432\u044b\u0448\u0435, \u0438\u043b\u0438 \u0441\u043a\u0440\u0430\u043f\u043f\u0438\u043d\u0433 \u0441\u0430\u0439\u0442\u0430.<\/p>\n<p>  <b>\u0422\u0440\u0435\u0442\u044c\u0435:<\/b> \u0417\u043d\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0443\u0431\u0440\u0430\u0432 \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0435 \u0438\u043b\u0438 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435, \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438, \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 \u0432\u0438\u0434\u0435, \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u043c \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0433\u043b\u0443\u043f\u044b\u0445, \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0445 \u0432\u044b\u0432\u043e\u0434\u043e\u0432.<\/p>\n<p>  <b>\u0427\u0435\u0442\u0432\u0435\u0440\u0442\u043e\u0435:<\/b> \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 <i>python <\/i>\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u0433\u0430\u0442\u0435\u0439\u0448\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u0418\u043d\u043e\u0433\u0434\u0430 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043e \u0447\u0435\u043c-\u0442\u043e \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0448\u044c \u0438\u0441\u043a\u0430\u0442\u044c \u2013 \u043e\u043d\u043e \u0443\u0436\u0435 \u0435\u0441\u0442\u044c. \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e! \u041e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044f\u043c \u0437\u0430 \u044d\u0442\u043e\u0442 \u0432\u043a\u043b\u0430\u0434, \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u043c\u043d\u0435 \u0437\u0434\u0435\u0441\u044c: \u044d\u0442\u043e <i>selenium<\/i> \u0434\u043b\u044f \u0441\u043a\u0440\u0430\u043f\u043f\u0438\u043d\u0433\u0430, pycountry \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0441\u0442\u0440\u0430\u043d\u044b \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 ISO, <i>country codes (datahub)<\/i> \u2013 \u0434\u043b\u044f \u043e\u043b\u0438\u043c\u043f\u0438\u0439\u0441\u043a\u0438\u0445 \u043a\u043e\u0434\u043e\u0432, <i>geopy <\/i>\u2013 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443, <i>folium <\/i>\u2013 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0433\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0445, <i>gender-guesser<\/i> \u2013 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043c\u0435\u043d, <i>multiprocessing <\/i>\u2013 \u0434\u043b\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, <i>matplotlib<\/i>, <i>numpy<\/i>, \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e <i>pandas <\/i>\u2013 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0438\u043a\u0443\u0434\u0430. <\/p>\n<p>  <b>\u041f\u044f\u0442\u043e\u0435:<\/b> \u0412\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u2013 \u043d\u0430\u0448\u0435 \u0432\u0441\u0435. \u041a\u0440\u0430\u0439\u043d\u0435 \u0432\u0430\u0436\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 <i>pandas<\/i>, \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e. \u041f\u043e\u043b\u0430\u0433\u0430\u044e, \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0442\u044b\u0441\u044f\u0447, \u044d\u0442\u043e\u0442 \u043d\u0430\u0432\u044b\u043a \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c.<\/p>\n<p>  <b>\u0428\u0435\u0441\u0442\u043e\u0435:<\/b> \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u2013 \u043f\u043b\u043e\u0445\u0430\u044f \u0438\u0434\u0435\u044f. \u041d\u0443\u0436\u043d\u043e \u0441\u0442\u0430\u0440\u0430\u0442\u044c\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0440\u0443\u0447\u043d\u043e\u0435 \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u2013 \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u044d\u0442\u043e \u043d\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u0441\u044f \u0434\u043e \u043d\u0435\u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0431\u0443\u0434\u0435\u0442 \u043f\u043b\u043e\u0445\u0430\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c \u2013 \u0447\u0442\u043e-\u0442\u043e \u0437\u0430\u0431\u0443\u0434\u0435\u0448\u044c, \u0433\u0434\u0435-\u0442\u043e \u043e\u0448\u0438\u0431\u0435\u0448\u044c\u0441\u044f. \u0412\u0441\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e, \u0435\u0441\u043b\u0438, \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0430\u0434\u0430\u0435\u0442 \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u0443 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0447\u0430\u0441\u0442\u044c\u044e \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043b\u044e\u0441\u043e\u0432 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435. <\/p>\n<p>  <b>\u0421\u0435\u0434\u044c\u043c\u043e\u0435:<\/b> \u041a\u043e\u0434 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438. \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0435\u0435! \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0435\u0441\u043b\u0438 \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u043a\u043e\u0434\u0435 \u0434\u043b\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0446\u0435\u043b\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0442\u0443\u0442 \u0432\u0441\u0435 \u043d\u0435 \u0442\u0430\u043a \u0441\u0442\u0440\u043e\u0433\u043e. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 \u042e\u043f\u0438\u0442\u0435\u0440 \u041d\u043e\u0443\u0442\u0431\u0443\u043a\u0430\u0445, \u0430 \u044d\u0442\u043e \u0441\u0440\u0435\u0434\u0430, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0446\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432. \u041e\u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0439, \u043f\u043e\u043a\u0443\u0441\u043e\u0447\u043d\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a, \u0432 \u044d\u0442\u043e\u043c \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u043b\u044e\u0441\u044b \u2013 \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u043e: \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430, \u043e\u0442\u043b\u0430\u0434\u043a\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u041d\u043e \u0447\u0430\u0441\u0442\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0435\u043b\u0438\u043a \u0441\u043e\u0431\u043b\u0430\u0437\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442 \u0438\u043b\u0438 \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c \u0432 <i>def<\/i>. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u0430\u0437\u043d\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c. \u041a \u0445\u043e\u0440\u043e\u0448\u0435\u043c\u0443 \u043a\u043e\u0434\u0443, \u0434\u0430\u0436\u0435 \u201c\u0434\u043b\u044f \u0441\u0435\u0431\u044f\u201d, \u043d\u0430\u0434\u043e \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u0437\u0430\u043f\u0443\u0441\u043a \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437, \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u043d\u0430\u0447\u0430\u043b\u0435, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043a\u0443\u043f\u044f\u0442\u0441\u044f \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c. \u0410 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0435\u0441\u0442\u044b, \u0434\u0430\u0436\u0435 \u0432 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430\u0445, \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u2013 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e. <\/p>\n<p>  <b>\u0412\u043e\u0441\u044c\u043c\u043e\u0435:<\/b> \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0447\u0430\u0449\u0435. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0449\u0430\u0433\u0435 \u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0444\u0430\u0439\u043b\u0430. \u0412\u0441\u0435\u0433\u043e \u0438\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u0430 10. \u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043e\u043d\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430. \u041f\u043b\u044e\u0441 \u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u0445 \u0441 \u043f\u043e\u043f\u0435\u0442\u043a\u043e\u0439 <i>raw<\/i> \u2014 \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438 \u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435. <\/p>\n<p>  <b>\u0414\u0435\u0432\u044f\u0442\u043e\u0435:<\/b> \u041d\u0443\u0436\u043d\u043e \u0441\u043e\u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041c\u0435\u0441\u0442\u0430\u043c\u0438 \u044f \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e \u0432\u043e\u0437\u0438\u043b\u0441\u044f \u043d\u0430\u0434 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u0434\u043e\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430. \u041f\u043e \u0441\u0443\u0442\u0438, \u0432 \u044d\u0442\u043e\u043c \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430, \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c \u0438\u0445, \u0438 \u0432\u0441\u0435. \u0418 \u044f \u0431\u044b \u0442\u0430\u043a \u0438 \u0441\u0434\u0435\u043b\u0430\u043b, \u0431\u0443\u0434\u044c \u044d\u0442\u043e \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0430 \u043d\u0435 \u0430\u0443\u0442\u043e\u0442\u0440\u0435\u043d\u0438\u043d\u0433. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u0417\u0434\u0435\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u041f\u0430\u0440\u0435\u0442\u043e \u2013 80% \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0437\u0430 20% \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <b>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435:<\/b> \u0440\u0430\u0431\u043e\u0442\u0430 \u043d\u0430\u0434 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438 \u043e\u0447\u0435\u043d\u044c \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u043a\u0440\u0443\u0433\u043e\u0437\u043e\u0440. \u0412\u043e\u043b\u0435\u0439-\u043d\u0435\u0432\u043e\u043b\u0435\u0439 \u0443\u0437\u043d\u0430\u0435\u0448\u044c, \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u2013 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0434\u0438\u043a\u043e\u0432\u0438\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d \u2014 \u0442\u0438\u043f\u0430 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432 \u041f\u0438\u0442\u043a\u044d\u0440\u043d, \u0442\u043e, \u0447\u0442\u043e \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 ISO \u043a\u043e\u0434 \u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u0438 \u2013 CHE, \u043e\u0442 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u043e\u0433\u043e \u201cConfoederatio Helvetica\u201d, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u043e\u0435 \u0438\u043c\u044f, \u043d\u0443 \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e \u0441\u0430\u043c\u043e\u043c \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d\u0435 \u2013 \u0440\u0435\u043a\u043e\u0440\u0434\u044b, \u0438\u0445 \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u0435\u043b\u0438, \u043c\u0435\u0441\u0442\u0430 \u0433\u043e\u043d\u043e\u043a, \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. <\/p>\n<p>  \u041f\u043e\u0436\u0430\u043b\u0443\u0439, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0435. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0432\u0441\u0435\u043c, \u043a\u0442\u043e \u0434\u043e\u0447\u0438\u0442\u0430\u043b \u0434\u043e \u043a\u043e\u043d\u0446\u0430!<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/500162\/\"> https:\/\/habr.com\/ru\/post\/500162\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/500162\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wd\/xv\/ft\/wdxvftc1pifrlchwt7ddj8dxtos.png\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442 \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d\u043e\u043c. \u042d\u0442\u043e\u0442 \u0432\u0438\u0434 \u0441\u043f\u043e\u0440\u0442\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0435\u043d \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0442\u0440\u0430\u043d\u0430\u0445 \u043c\u0438\u0440\u0430, \u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u0421\u0428\u0410, \u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0438 \u0438 \u0415\u0432\u0440\u043e\u043f\u0435. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0438 \u0441\u0442\u0440\u0430\u043d\u0430\u0445 \u0421\u041d\u0413. \u0420\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u0432\u043e\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439, \u043d\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u0432. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043b\u0430\u0432\u0430\u043d\u0438\u044f \u0432 \u0431\u0430\u0441\u0441\u0435\u0439\u043d\u0435, \u043a\u0430\u0442\u0430\u043d\u0438\u044f \u043d\u0430 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0435 \u0438 \u043f\u0440\u043e\u0431\u0435\u0436\u0435\u043a \u043f\u043e \u0443\u0442\u0440\u0430\u043c, \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u043a \u043d\u0438\u043c, \u0434\u0430\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0447\u0438 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u043c. \u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0441\u0440\u0435\u0434\u0438 \u0432\u0430\u0448\u0438\u0445 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0445 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u043e\u0434\u0438\u043d \u201c\u0436\u0435\u043b\u0435\u0437\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u201d \u0438\u043b\u0438 \u0442\u043e\u0442, \u043a\u0442\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0438\u043c \u0441\u0442\u0430\u0442\u044c. \u041c\u0430\u0441\u0441\u043e\u0432\u043e\u0441\u0442\u044c, \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0439, \u0442\u0440\u0438 \u0432\u0438\u0434\u0430 \u0441\u043f\u043e\u0440\u0442\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u2013 \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043a \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u0430\u0436\u0434\u044b\u0439 \u0433\u043e\u0434 \u0432 \u043c\u0438\u0440\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0442\u0435\u043d \u0441\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e \u0442\u0440\u0438\u0430\u0442\u043b\u043e\u043d\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0442\u0435\u043d \u0442\u044b\u0441\u044f\u0447 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445. \u0421\u043e\u0440\u0435\u0432\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0441\u0438\u043b\u0430\u043c\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0443 \u0441\u0435\u0431\u044f. \u041d\u043e \u0434\u043b\u044f \u0441\u043f\u043e\u0440\u0442\u0441\u043c\u0435\u043d\u043e\u0432 \u0438\u0437 \u0420\u043e\u0441\u0441\u0438\u0438 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0440\u0430\u043d \u0421\u041d\u0413, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <a href=\"http:\/\/tristats.ru\">tristats.ru<\/a> \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u2013 \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u043f\u043e\u0438\u0441\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u043a\u0430\u043a \u0441\u0432\u043e\u0438\u0445, \u0442\u0430\u043a \u0438 \u0441\u0432\u043e\u0438\u0445 \u0434\u0440\u0443\u0437\u0435\u0439 \u0438 \u0441\u043e\u043f\u0435\u0440\u043d\u0438\u043a\u043e\u0432, \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0441\u0432\u043e\u0438\u0445 \u043a\u0443\u043c\u0438\u0440\u043e\u0432. \u041d\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0434\u0430\u043b\u043e \u0435\u0449\u0435 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u0438\u0432\u0430\u043d\u044b \u043d\u0430 \u0442\u0440\u0438\u043b\u0430\u0439\u0444\u0435: <a href=\"https:\/\/www.trilife.ru\/reports\/big-data-o-chyem-ty-nam-rasskazhesh\/\">\u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c<\/a>. <\/p>\n<p>  \u042d\u0442\u043e \u0431\u044b\u043b \u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043b\u0438\u0448\u044c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u044f \u043d\u0430\u0447\u0430\u043b \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <i>python<\/i>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0442\u043e \u0438 \u0434\u0435\u043b\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u043b\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043d\u044e\u0430\u043d\u0441\u044b, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430. \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e \u0441\u043a\u0440\u0430\u043f\u043f\u0438\u043d\u0433, \u043f\u0430\u0440\u0441\u0438\u043d\u0433, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0438, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0434\u0430\u0436\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-302918","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=302918"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302918\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=302918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=302918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=302918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}