{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Программирование на языке Python для сбора и анализа данных" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Текст лекции: Щуров И.В., НИУ ВШЭ*\n", "\n", "Данный notebook является конспектом лекции по курсу «Программирование на языке Python для сбора и анализа данных» (НИУ ВШЭ, 2015-16). Он распространяется на условиях лицензии [Creative Commons Attribution-Share Alike 4.0](http://creativecommons.org/licenses/by-sa/4.0/). При использовании обязательно упоминание автора курса и аффилиации. При наличии технической возможности необходимо также указать активную гиперссылку на [страницу курса](http://math-info.hse.ru/s15/m). Фрагменты кода, включенные в этот notebook, публикуются как [общественное достояние](http://creativecommons.org/publicdomain/zero/1.0/).\n", "\n", "Другие материалы курса, включая конспекты и видеозаписи лекций, а также наборы задач, можно найти на [странице курса](http://math-info.hse.ru/s15/m)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Лекция 1. Первое знакомство" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Пример с красивой картинкой" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Прежде, чем мы начнём изучать Python системно, мне хочется показать что-нибудь красивое и завлекательное, чтобы вы оценили возможности, прониклись и мотивировались. Просматривая ваши ответы на вопрос о трёх задачах, которые вы решите, когда освоите Python в достаточной степени, я обратил внимание, что многие из вас хотят обрабатывать информацию с различных сайтов. Наш первый пример будет как раз про это. Он скорее всего поначалу покажется чёрной магией, но со временем мы во всём разберёмся.\n", "\n", "Для начала импортируем несколько библиотек. Скорее всего у вас уже установлена `pandas` (это библиотека для работы с датафреймами), но может не быть библиотеки `seaborn`. Её надо установить, например, набрав в командной строке `pip3 install seaborn` или `conda install seaborn`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.5/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", " warnings.warn(self.msg_depr % (key, alt_key))\n" ] } ], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "%config InlineBackend.figure_format = 'svg'\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Теперь зайдём на [страницу Википедии](https://en.wikipedia.org/w/index.php?title=Moscow&oldid=683872744#Demographics) о Москве и найдём там табличку с информацией о динамике населения.\n", "![Скриншот со страницы Википедии](http://math-info.hse.ru/f/2015-16/all-py/wikipedia-moscow-demography.png)\n", "\n", "Мы хотим программно вытащить эту информацию со страницы и немножко её обработать. В ячейке ниже решеткой обозначается комментарий. (Всё, что написано после решетки и до конца строки, игнорируется Python.)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", " | Year | \n", "Pop. | \n", "±% | \n", "
---|---|---|---|
0 | \n", "1897 | \n", "1038625 | \n", "— | \n", "
1 | \n", "1926 | \n", "2019500 | \n", "+94.4% | \n", "
2 | \n", "1939 | \n", "4137000 | \n", "+104.9% | \n", "
3 | \n", "1959 | \n", "5032000 | \n", "+21.6% | \n", "
4 | \n", "1970 | \n", "6941961 | \n", "+38.0% | \n", "
5 | \n", "1979 | \n", "7830509 | \n", "+12.8% | \n", "
6 | \n", "1989 | \n", "8967332 | \n", "+14.5% | \n", "
7 | \n", "2002 | \n", "10382754 | \n", "+15.8% | \n", "
8 | \n", "2010 | \n", "11503501 | \n", "+10.8% | \n", "
9 | \n", "2013 | \n", "11794282 | \n", "+2.5% | \n", "
10 | \n", "2015 | \n", "12197596 | \n", "+3.4% | \n", "
11 | \n", "Population size may be affected by changes in ... | \n", "NaN | \n", "NaN | \n", "