{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Python для сбора данных\n",
"\n",
"*Алла Тамбовцева, НИУ ВШЭ*\n",
"\n",
"## Работа с таблицами. Введение в библиотеку `pandas`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Датафреймы (таблицы) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"В этой и последующих лекциях мы будем работать с таблицами. В социальных науках термины «база данных» и «таблица» часто используются как синонимы. Вообще, между этими терминами есть существенная разница, так как база данных – это набор таблиц, связанных друг с другом (при определённых условиях можно думать о ней как о файле Excel с разными листами). Давайте для простоты считать эти термины эквивалентными, основы работы с «настоящими» базами данных (*SQL*, *PyMongo*) мы обсуждать не будем. Кроме того, в качестве синонима слова *таблица* мы будем использовать слово *датафрейм* как кальку с термина *data frame*."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Библиотека `pandas` используется для удобной и более эффективной работы с таблицами. Её функционал достаточно разнообразен, но давайте начнем с каких-то базовых функций и методов. \n",
"\n",
"Для начала импортируем саму библиотеку."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Здесь мы использовали такой приём: импортировали библиотеку и присвоили ей сокращенное имя, которое будет использоваться в пределах данного ipynb-файла. Чтобы не писать перед каждой библиотечной функцией длинное `pandas.` и не импортировать сразу все функции из этой библиотеки, мы сократили название до `pd`, и в дальнейшем Python будет понимать, что мы имеем в виду. Можно было бы сократить и до `p`, но тогда есть риск забыть про это и создать переменную с таким же именем, что в какой-то момент приведёт к проблемам. К тому же `pd` – распространенное сокращение.\n",
"\n",
"(И да, таким образом можно сокращать названия любых библиотек и модулей. Ничто бы не помешало нам на предыдущих занятиях писать, например, `import math as ma`, просто в этом не было необходимости).\n",
"\n",
"А теперь вернемся к таблице."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Загрузка таблицы из файла и описание переменных\n",
"\n",
"А теперь давайте загрузим какую-нибудь реальную базу данных из файла. Библиотека `pandas` достаточно гибкая, она позволяет загружать данные из файлов разных форматов. Пока остановимся на самом простом – файле *csv*, что расшифровывается как *comma separated values*. Столбцы в таком файле по умолчанию отделяются друг от друга запятой. Например, такая таблица"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 0 | \n",
" 1 | \n",
" 2 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" 4 | \n",
" 9 | \n",
"
\n",
" \n",
" 1 | \n",
" 4 | \n",
" 8 | \n",
" 6 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2\n",
"0 1 4 9\n",
"1 4 8 6"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame([[1, 4, 9], [4, 8, 6]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"сохраненная в формате *csv* без названий строк и столбцов будет выглядеть так:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" 1, 4, 9\n",
" 4, 8, 6"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Но разделитель столбцов в таблице может быть и другим, например, точкой с запятой:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" 1; 4; 9\n",
" 4; 8; 6"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"В таких случаях нам потребуется дополнительно выставлять параметр `sep = \";\"`, чтобы Python понимал, как правильно отделять один столбец от другого. Но потренируемся открывать разные форматы файлов в следующий раз. Сейчас посмотрим, как загрузить файл по ссылке."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(\"http://math-info.hse.ru/f/2017-18/py-prog/scores2.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Для загрузки мы воспользовались функцией `read_csv()` и указали сс>ылку (путь к файлу) в кавычках.\n",
"\n",
"*Для тех, кто чаще работает в R:* следите за написанием этой функции, есть соблазн написать `read.csv()`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"В файле `scores2.csv` сохранены оценки студентов-политологов по ряду курсов. Оценки реальные, взяты из кумулятивного рейтинга, но имена студентов зашифрованы – вместо них задействованы номера студенческих билетов. Посмотрим на датафрейм:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" id | \n",
" catps | \n",
" mstat | \n",
" soc | \n",
" econ | \n",
" eng | \n",
" polth | \n",
" mstat2 | \n",
" phist | \n",
" law | \n",
" phil | \n",
" polsoc | \n",
" ptheo | \n",
" preg | \n",
" compp | \n",
" game | \n",
" wpol | \n",
" male | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" М141БПЛТЛ024 | \n",
" 7 | \n",
" 9 | \n",
" 8 | \n",
" 8 | \n",
" 9 | \n",
" 8 | \n",
" 10 | \n",
" 8.0 | \n",
" 7 | \n",
" 9 | \n",
" 9 | \n",
" 7.0 | \n",
" 8 | \n",
" 8.0 | \n",
" 6 | \n",
" 10 | \n",
" 1 | \n",
"
\n",
" \n",
" 1 | \n",
" М141БПЛТЛ031 | \n",
" 8 | \n",
" 10 | \n",
" 10 | \n",
" 10 | \n",
" 10 | \n",
" 10 | \n",
" 10 | \n",
" 9.0 | \n",
" 9 | \n",
" 10 | \n",
" 10 | \n",
" 9.0 | \n",
" 8 | \n",
" 8.0 | \n",
" 9 | \n",
" 10 | \n",
" 1 | \n",
"
\n",
" \n",
" 2 | \n",
" М141БПЛТЛ075 | \n",
" 9 | \n",
" 9 | \n",
" 9 | \n",
" 10 | \n",
" 9 | \n",
" 10 | \n",
" 9 | \n",
" 8.0 | \n",
" 9 | \n",
" 10 | \n",
" 9 | \n",
" 9.0 | \n",
" 8 | \n",
" 8.0 | \n",
" 7 | \n",
" 9 | \n",
" 1 | \n",
"
\n",
" \n",
" 3 | \n",
" М141БПЛТЛ017 | \n",
" 9 | \n",
" 9 | \n",
" 8 | \n",
" 8 | \n",
" 9 | \n",
" 9 | \n",
" 10 | \n",
" 6.0 | \n",
" 9 | \n",
" 9 | \n",
" 9 | \n",
" 8.0 | \n",
" 8 | \n",
" 8.0 | \n",
" 8 | \n",
" 9 | \n",
" 0 | \n",
"
\n",
" \n",
" 4 | \n",
" М141БПЛТЛ069 | \n",
" 10 | \n",
" 10 | \n",
" 10 | \n",
" 10 | \n",
" 10 | \n",
" 10 | \n",
" 9 | \n",
" 8.0 | \n",
" 8 | \n",
" 10 | \n",
" 9 | \n",
" 7.0 | \n",
" 6 | \n",
" 5.0 | \n",
" 8 | \n",
" 10 | \n",
" 1 | \n",
"
\n",
" \n",
" 5 | \n",
" М141БПЛТЛ072 | \n",
" 10 | \n",
" 9 | \n",
" 8 | \n",
" 10 | \n",
" 9 | \n",
" 8 | \n",
" 9 | \n",
" 8.0 | \n",
" 8 | \n",
" 10 | \n",
" 9 | \n",
" 7.0 | \n",
" 8 | \n",
" 8.0 | \n",
" 9 | \n",
" 9 | \n",
" 0 | \n",
"
\n",
" \n",
" 6 | \n",
" М141БПЛТЛ020 | \n",
" 8 | \n",
" 7 | \n",
" 7 | \n",
" 6 | \n",
" 9 | \n",
" 10 | \n",
" 8 | \n",
" 8.0 | \n",
" 7 | \n",
" 7 | \n",
" 9 | \n",
" 7.0 | \n",
" 8 | \n",
" 6.0 | \n",
" 8 | \n",
" 9 | \n",
" 1 | \n",
"
\n",
" \n",
" 7 | \n",
" М141БПЛТЛ026 | \n",
" 7 | \n",
" 10 | \n",
" 8 | \n",
" 7 | \n",
" 10 | \n",
" 7 | \n",
" 9 | \n",
" 8.0 | \n",
" 8 | \n",
" 8 | \n",
" 8 | \n",
" 8.0 | \n",
" 8 | \n",
" 7.0 | \n",
" 7 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 8 | \n",
" М141БПЛТЛ073 | \n",
" 7 | \n",
" 9 | \n",
" 8 | \n",
" 8 | \n",
" 9 | \n",
" 8 | \n",
" 9 | \n",
" 8.0 | \n",
" 8 | \n",
" 9 | \n",
" 9 | \n",
" 7.0 | \n",
" 7 | \n",
" 6.0 | \n",
" 10 | \n",
" 9 | \n",
" 1 | \n",
"
\n",
" \n",
" 9 | \n",
" М141БПЛТЛ078 | \n",
" 6 | \n",
" 6 | \n",
" 9 | \n",
" 5 | \n",
" 6 | \n",
" 10 | \n",
" 7 | \n",
" 6.0 | \n",
" 8 | \n",
" 6 | \n",
" 9 | \n",
" 6.0 | \n",
" 8 | \n",
" 8.0 | \n",
" 6 | \n",
" 7 | \n",
" 0 | \n",
"
\n",
" \n",
" 10 | \n",
" М141БПЛТЛ060 | \n",
" 7 | \n",
" 8 | \n",
" 7 | \n",
" 7 | \n",
" 9 | \n",
" 8 | \n",
" 8 | \n",
" 5.0 | \n",
" 7 | \n",
" 5 | \n",
" 8 | \n",
" 5.0 | \n",
" 7 | \n",
" 8.0 | \n",
" 7 | \n",
" 9 | \n",
" 1 | \n",
"
\n",
" \n",
" 11 | \n",
" М141БПЛТЛ040 | \n",
" 6 | \n",
" 9 | \n",
" 8 | \n",
" 6 | \n",
" 9 | \n",
" 7 | \n",
" 8 | \n",
" 6.0 | \n",
" 9 | \n",
" 5 | \n",
" 8 | \n",
" 5.0 | \n",
" 8 | \n",
" 5.0 | \n",
" 7 | \n",
" 10 | \n",
" 0 | \n",
"
\n",
" \n",
" 12 | \n",
" М141БПЛТЛ065 | \n",
" 9 | \n",
" 9 | \n",
" 8 | \n",
" 4 | \n",
" 8 | \n",
" 8 | \n",
" 7 | \n",
" 9.0 | \n",
" 8 | \n",
" 5 | \n",
" 10 | \n",
" 9.0 | \n",
" 8 | \n",
" 8.0 | \n",
" 6 | \n",
" 9 | \n",
" 1 | \n",
"
\n",
" \n",
" 13 | \n",
" М141БПЛТЛ053 | \n",
" 6 | \n",
" 7 | \n",
" 7 | \n",
" 5 | \n",
" 9 | \n",
" 8 | \n",
" 7 | \n",
" 8.0 | \n",
" 8 | \n",
" 6 | \n",
" 8 | \n",
" 7.0 | \n",
" 8 | \n",
" 6.0 | \n",
" 9 | \n",
" 9 | \n",
" 0 | \n",
"
\n",
" \n",
" 14 | \n",
" М141БПЛТЛ015 | \n",
" 6 | \n",
" 9 | \n",
" 7 | \n",
" 6 | \n",
" 9 | \n",
" 7 | \n",
" 9 | \n",
" 4.0 | \n",
" 7 | \n",
" 7 | \n",
" 7 | \n",
" 6.0 | \n",
" 7 | \n",
" 7.0 | \n",
" 10 | \n",
" 7 | \n",
" 0 | \n",
"
\n",
" \n",
" 15 | \n",
" М141БПЛТЛ021 | \n",
" 8 | \n",
" 9 | \n",
" 8 | \n",
" 8 | \n",
" 9 | \n",
" 8 | \n",
" 8 | \n",
" 7.0 | \n",
" 7 | \n",
" 7 | \n",
" 6 | \n",
" 6.0 | \n",
" 8 | \n",
" 6.0 | \n",
" 7 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 16 | \n",
" М141БПЛТЛ018 | \n",
" 7 | \n",
" 7 | \n",
" 9 | \n",
" 7 | \n",
" 9 | \n",
" 7 | \n",
" 8 | \n",
" 6.0 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
" 7.0 | \n",
" 7 | \n",
" 7.0 | \n",
" 7 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 17 | \n",
" М141БПЛТЛ039 | \n",
" 9 | \n",
" 8 | \n",
" 9 | \n",
" 8 | \n",
" 8 | \n",
" 8 | \n",
" 6 | \n",
" 8.0 | \n",
" 7 | \n",
" 6 | \n",
" 9 | \n",
" 6.0 | \n",
" 7 | \n",
" 8.0 | \n",
" 4 | \n",
" 9 | \n",
" 1 | \n",
"
\n",
" \n",
" 18 | \n",
" М141БПЛТЛ036 | \n",
" 8 | \n",
" 10 | \n",
" 7 | \n",
" 8 | \n",
" 8 | \n",
" 6 | \n",
" 9 | \n",
" 4.0 | \n",
" 8 | \n",
" 8 | \n",
" 7 | \n",
" 6.0 | \n",
" 7 | \n",
" 6.0 | \n",
" 7 | \n",
" 8 | \n",
" 1 | \n",
"
\n",
" \n",
" 19 | \n",
" М141БПЛТЛ049 | \n",
" 6 | \n",
" 7 | \n",
" 6 | \n",
" 6 | \n",
" 8 | \n",
" 6 | \n",
" 8 | \n",
" 4.0 | \n",
" 8 | \n",
" 5 | \n",
" 9 | \n",
" 6.0 | \n",
" 8 | \n",
" 5.0 | \n",
" 6 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 20 | \n",
" 06114043 | \n",
" 8 | \n",
" 8 | \n",
" 10 | \n",
" 5 | \n",
" 8 | \n",
" 8 | \n",
" 8 | \n",
" 10.0 | \n",
" 7 | \n",
" 7 | \n",
" 9 | \n",
" NaN | \n",
" 7 | \n",
" 8.0 | \n",
" 7 | \n",
" 8 | \n",
" 1 | \n",
"
\n",
" \n",
" 21 | \n",
" М141БПЛТЛ048 | \n",
" 8 | \n",
" 6 | \n",
" 8 | \n",
" 6 | \n",
" 9 | \n",
" 6 | \n",
" 4 | \n",
" 4.0 | \n",
" 6 | \n",
" 4 | \n",
" 8 | \n",
" 4.0 | \n",
" 6 | \n",
" 7.0 | \n",
" 7 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 22 | \n",
" М141БПЛТЛ034 | \n",
" 6 | \n",
" 9 | \n",
" 7 | \n",
" 6 | \n",
" 9 | \n",
" 6 | \n",
" 8 | \n",
" 6.0 | \n",
" 7 | \n",
" 6 | \n",
" 6 | \n",
" 5.0 | \n",
" 8 | \n",
" 5.0 | \n",
" 8 | \n",
" 9 | \n",
" 0 | \n",
"
\n",
" \n",
" 23 | \n",
" М141БПЛТЛ045 | \n",
" 5 | \n",
" 8 | \n",
" 8 | \n",
" 7 | \n",
" 8 | \n",
" 6 | \n",
" 7 | \n",
" 6.0 | \n",
" 7 | \n",
" 7 | \n",
" 8 | \n",
" 6.0 | \n",
" 8 | \n",
" 6.0 | \n",
" 5 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 24 | \n",
" М141БПЛТЛ033 | \n",
" 5 | \n",
" 9 | \n",
" 8 | \n",
" 7 | \n",
" 9 | \n",
" 7 | \n",
" 9 | \n",
" 7.0 | \n",
" 7 | \n",
" 8 | \n",
" 8 | \n",
" 7.0 | \n",
" 8 | \n",
" 5.0 | \n",
" 7 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 25 | \n",
" М141БПЛТЛ083 | \n",
" 5 | \n",
" 5 | \n",
" 6 | \n",
" 5 | \n",
" 8 | \n",
" 7 | \n",
" 6 | \n",
" 5.0 | \n",
" 7 | \n",
" 5 | \n",
" 7 | \n",
" 5.0 | \n",
" 7 | \n",
" 5.0 | \n",
" 4 | \n",
" 7 | \n",
" 0 | \n",
"
\n",
" \n",
" 26 | \n",
" М141БПЛТЛ008 | \n",
" 10 | \n",
" 8 | \n",
" 8 | \n",
" 9 | \n",
" 8 | \n",
" 10 | \n",
" 9 | \n",
" 8.0 | \n",
" 9 | \n",
" 10 | \n",
" 9 | \n",
" 8.0 | \n",
" 5 | \n",
" 5.0 | \n",
" 10 | \n",
" 4 | \n",
" 1 | \n",
"
\n",
" \n",
" 27 | \n",
" М141БПЛТЛ001 | \n",
" 6 | \n",
" 7 | \n",
" 7 | \n",
" 4 | \n",
" 10 | \n",
" 7 | \n",
" 7 | \n",
" 6.0 | \n",
" 8 | \n",
" 6 | \n",
" 8 | \n",
" 4.0 | \n",
" 6 | \n",
" 6.0 | \n",
" 4 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 28 | \n",
" М141БПЛТЛ038 | \n",
" 7 | \n",
" 9 | \n",
" 6 | \n",
" 4 | \n",
" 9 | \n",
" 6 | \n",
" 7 | \n",
" 6.0 | \n",
" 7 | \n",
" 4 | \n",
" 8 | \n",
" 4.0 | \n",
" 5 | \n",
" 4.0 | \n",
" 9 | \n",
" 7 | \n",
" 1 | \n",
"
\n",
" \n",
" 29 | \n",
" М141БПЛТЛ052 | \n",
" 7 | \n",
" 7 | \n",
" 7 | \n",
" 7 | \n",
" 8 | \n",
" 6 | \n",
" 6 | \n",
" 6.0 | \n",
" 8 | \n",
" 6 | \n",
" 7 | \n",
" 5.0 | \n",
" 8 | \n",
" 6.0 | \n",
" 5 | \n",
" 7 | \n",
" 1 | \n",
"
\n",
" \n",
" 30 | \n",
" М141БПЛТЛ011 | \n",
" 7 | \n",
" 6 | \n",
" 8 | \n",
" 6 | \n",
" 9 | \n",
" 6 | \n",
" 6 | \n",
" 5.0 | \n",
" 6 | \n",
" 6 | \n",
" 7 | \n",
" 6.0 | \n",
" 8 | \n",
" 6.0 | \n",
" 5 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 31 | \n",
" М141БПЛТЛ004 | \n",
" 7 | \n",
" 7 | \n",
" 6 | \n",
" 6 | \n",
" 8 | \n",
" 6 | \n",
" 6 | \n",
" 5.0 | \n",
" 5 | \n",
" 5 | \n",
" 6 | \n",
" 5.0 | \n",
" 7 | \n",
" 5.0 | \n",
" 8 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 32 | \n",
" М141БПЛТЛ010 | \n",
" 6 | \n",
" 6 | \n",
" 7 | \n",
" 6 | \n",
" 9 | \n",
" 7 | \n",
" 7 | \n",
" 6.0 | \n",
" 7 | \n",
" 5 | \n",
" 8 | \n",
" 6.0 | \n",
" 8 | \n",
" 6.0 | \n",
" 5 | \n",
" 8 | \n",
" 1 | \n",
"
\n",
" \n",
" 33 | \n",
" М141БПЛТЛ071 | \n",
" 6 | \n",
" 9 | \n",
" 7 | \n",
" 7 | \n",
" 9 | \n",
" 6 | \n",
" 8 | \n",
" 4.0 | \n",
" 6 | \n",
" 7 | \n",
" 7 | \n",
" 6.0 | \n",
" 5 | \n",
" NaN | \n",
" 5 | \n",
" 7 | \n",
" 0 | \n",
"
\n",
" \n",
" 34 | \n",
" М141БПЛТЛ035 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 6 | \n",
" 8 | \n",
" 5 | \n",
" 5 | \n",
" 4.0 | \n",
" 6 | \n",
" 6 | \n",
" 7 | \n",
" 5.0 | \n",
" 8 | \n",
" 7.0 | \n",
" 6 | \n",
" 7 | \n",
" 0 | \n",
"
\n",
" \n",
" 35 | \n",
" М141БПЛТЛ030 | \n",
" 7 | \n",
" 6 | \n",
" 6 | \n",
" 6 | \n",
" 7 | \n",
" 6 | \n",
" 6 | \n",
" 4.0 | \n",
" 8 | \n",
" 5 | \n",
" 5 | \n",
" 5.0 | \n",
" 8 | \n",
" 5.0 | \n",
" 7 | \n",
" 9 | \n",
" 1 | \n",
"
\n",
" \n",
" 36 | \n",
" М141БПЛТЛ070 | \n",
" 5 | \n",
" 5 | \n",
" 6 | \n",
" 4 | \n",
" 8 | \n",
" 6 | \n",
" 5 | \n",
" 5.0 | \n",
" 6 | \n",
" 4 | \n",
" 5 | \n",
" 6.0 | \n",
" 8 | \n",
" 5.0 | \n",
" 6 | \n",
" 7 | \n",
" 0 | \n",
"
\n",
" \n",
" 37 | \n",
" М141БПЛТЛ051 | \n",
" 8 | \n",
" 9 | \n",
" 8 | \n",
" 6 | \n",
" 8 | \n",
" 7 | \n",
" 6 | \n",
" 7.0 | \n",
" 6 | \n",
" 6 | \n",
" 6 | \n",
" 5.0 | \n",
" 4 | \n",
" 4.0 | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
"
\n",
" \n",
" 38 | \n",
" М141БПЛТЛ046 | \n",
" 5 | \n",
" 7 | \n",
" 7 | \n",
" 4 | \n",
" 7 | \n",
" 5 | \n",
" 8 | \n",
" 5.0 | \n",
" 7 | \n",
" 5 | \n",
" 7 | \n",
" 5.0 | \n",
" 8 | \n",
" 4.0 | \n",
" 5 | \n",
" 7 | \n",
" 0 | \n",
"
\n",
" \n",
" 39 | \n",
" М141БПЛТЛ047 | \n",
" 5 | \n",
" 8 | \n",
" 6 | \n",
" 4 | \n",
" 7 | \n",
" 5 | \n",
" 9 | \n",
" 5.0 | \n",
" 6 | \n",
" 4 | \n",
" 6 | \n",
" 4.0 | \n",
" 7 | \n",
" 4.0 | \n",
" 8 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 40 | \n",
" М141БПЛТЛ063 | \n",
" 5 | \n",
" 5 | \n",
" 6 | \n",
" 4 | \n",
" 8 | \n",
" 4 | \n",
" 4 | \n",
" 4.0 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 4.0 | \n",
" 7 | \n",
" 5.0 | \n",
" 8 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 41 | \n",
" М141БПЛТЛ029 | \n",
" 6 | \n",
" 8 | \n",
" 8 | \n",
" 7 | \n",
" 9 | \n",
" 5 | \n",
" 6 | \n",
" 7.0 | \n",
" 6 | \n",
" 5 | \n",
" 8 | \n",
" 5.0 | \n",
" 7 | \n",
" 4.0 | \n",
" 5 | \n",
" 7 | \n",
" 0 | \n",
"
\n",
" \n",
" 42 | \n",
" М141БПЛТЛ064 | \n",
" 7 | \n",
" 8 | \n",
" 6 | \n",
" 7 | \n",
" 6 | \n",
" 6 | \n",
" 8 | \n",
" 4.0 | \n",
" 6 | \n",
" 4 | \n",
" 4 | \n",
" 4.0 | \n",
" 6 | \n",
" 5.0 | \n",
" 4 | \n",
" 7 | \n",
" 0 | \n",
"
\n",
" \n",
" 43 | \n",
" М141БПЛТЛ076 | \n",
" 7 | \n",
" 7 | \n",
" 8 | \n",
" 6 | \n",
" 8 | \n",
" 6 | \n",
" 6 | \n",
" 6.0 | \n",
" 8 | \n",
" 6 | \n",
" 8 | \n",
" 5.0 | \n",
" 7 | \n",
" 4.0 | \n",
" 4 | \n",
" 6 | \n",
" 0 | \n",
"
\n",
" \n",
" 44 | \n",
" М141БПЛТЛ062 | \n",
" 7 | \n",
" 7 | \n",
" 7 | \n",
" 6 | \n",
" 9 | \n",
" 6 | \n",
" 6 | \n",
" 5.0 | \n",
" 6 | \n",
" 5 | \n",
" 6 | \n",
" 4.0 | \n",
" 5 | \n",
" 5.0 | \n",
" 4 | \n",
" 6 | \n",
" 0 | \n",
"
\n",
" \n",
" 45 | \n",
" М141БПЛТЛ074 | \n",
" 5 | \n",
" 6 | \n",
" 7 | \n",
" 4 | \n",
" 7 | \n",
" 6 | \n",
" 5 | \n",
" 6.0 | \n",
" 6 | \n",
" 6 | \n",
" 8 | \n",
" 6.0 | \n",
" 6 | \n",
" 6.0 | \n",
" 8 | \n",
" 8 | \n",
" 1 | \n",
"
\n",
" \n",
" 46 | \n",
" 130232038 | \n",
" 6 | \n",
" 7 | \n",
" 6 | \n",
" 5 | \n",
" 8 | \n",
" 4 | \n",
" 8 | \n",
" 4.0 | \n",
" 8 | \n",
" 4 | \n",
" 5 | \n",
" 5.0 | \n",
" 6 | \n",
" 4.0 | \n",
" 5 | \n",
" 6 | \n",
" 0 | \n",
"
\n",
" \n",
" 47 | \n",
" М141БПЛТЛ023 | \n",
" 7 | \n",
" 9 | \n",
" 6 | \n",
" 8 | \n",
" 9 | \n",
" 6 | \n",
" 9 | \n",
" 4.0 | \n",
" 7 | \n",
" 7 | \n",
" 7 | \n",
" 6.0 | \n",
" 4 | \n",
" 4.0 | \n",
" 7 | \n",
" 5 | \n",
" 1 | \n",
"
\n",
" \n",
" 48 | \n",
" М141БПЛТЛ054 | \n",
" 7 | \n",
" 8 | \n",
" 6 | \n",
" 4 | \n",
" 8 | \n",
" 6 | \n",
" 4 | \n",
" 4.0 | \n",
" 6 | \n",
" 4 | \n",
" 8 | \n",
" 4.0 | \n",
" 4 | \n",
" 4.0 | \n",
" 4 | \n",
" 8 | \n",
" 1 | \n",
"
\n",
" \n",
" 49 | \n",
" М141БПЛТЛ012 | \n",
" 6 | \n",
" 6 | \n",
" 7 | \n",
" 4 | \n",
" 10 | \n",
" 6 | \n",
" 5 | \n",
" 4.0 | \n",
" 7 | \n",
" 5 | \n",
" 7 | \n",
" 4.0 | \n",
" 5 | \n",
" 4.0 | \n",
" 4 | \n",
" 8 | \n",
" 1 | \n",
"
\n",
" \n",
" 50 | \n",
" М141БПЛТЛ006 | \n",
" 6 | \n",
" 5 | \n",
" 6 | \n",
" 5 | \n",
" 8 | \n",
" 5 | \n",
" 5 | \n",
" 5.0 | \n",
" 6 | \n",
" 4 | \n",
" 7 | \n",
" 5.0 | \n",
" 7 | \n",
" 5.0 | \n",
" 6 | \n",
" 8 | \n",
" 0 | \n",
"
\n",
" \n",
" 51 | \n",
" М141БПЛТЛ055 | \n",
" 6 | \n",
" 5 | \n",
" 6 | \n",
" 4 | \n",
" 7 | \n",
" 7 | \n",
" 4 | \n",
" 8.0 | \n",
" 5 | \n",
" 4 | \n",
" 6 | \n",
" 4.0 | \n",
" 6 | \n",
" 5.0 | \n",
" 4 | \n",
" 5 | \n",
" 1 | \n",
"
\n",
" \n",
" 52 | \n",
" М141БПЛТЛ007 | \n",
" 6 | \n",
" 7 | \n",
" 7 | \n",
" 6 | \n",
" 7 | \n",
" 6 | \n",
" 7 | \n",
" 4.0 | \n",
" 5 | \n",
" 5 | \n",
" 6 | \n",
" 5.0 | \n",
" 4 | \n",
" 5.0 | \n",
" 4 | \n",
" 7 | \n",
" 1 | \n",
"
\n",
" \n",
" 53 | \n",
" М141БПЛТЛ050 | \n",
" 8 | \n",
" 6 | \n",
" 6 | \n",
" 6 | \n",
" 8 | \n",
" 4 | \n",
" 5 | \n",
" 4.0 | \n",
" 5 | \n",
" 5 | \n",
" 6 | \n",
" 4.0 | \n",
" 5 | \n",
" 4.0 | \n",
" 6 | \n",
" 6 | \n",
" 0 | \n",
"
\n",
" \n",
" 54 | \n",
" М141БПЛТЛ066 | \n",
" 7 | \n",
" 10 | \n",
" 7 | \n",
" 7 | \n",
" 9 | \n",
" 5 | \n",
" 8 | \n",
" 4.0 | \n",
" 6 | \n",
" 5 | \n",
" 6 | \n",
" 4.0 | \n",
" 6 | \n",
" 4.0 | \n",
" 5 | \n",
" 6 | \n",
" 0 | \n",
"
\n",
" \n",
" 55 | \n",
" М141БПЛТЛ043 | \n",
" 5 | \n",
" 5 | \n",
" 6 | \n",
" 5 | \n",
" 8 | \n",
" 5 | \n",
" 6 | \n",
" 5.0 | \n",
" 6 | \n",
" 4 | \n",
" 5 | \n",
" 4.0 | \n",
" 5 | \n",
" NaN | \n",
" 4 | \n",
" 6 | \n",
" 0 | \n",
"
\n",
" \n",
" 56 | \n",
" М141БПЛТЛ084 | \n",
" 6 | \n",
" 7 | \n",
" 8 | \n",
" 4 | \n",
" 8 | \n",
" 5 | \n",
" 5 | \n",
" NaN | \n",
" 8 | \n",
" 4 | \n",
" 4 | \n",
" 4.0 | \n",
" 4 | \n",
" 4.0 | \n",
" 6 | \n",
" 7 | \n",
" 1 | \n",
"
\n",
" \n",
" 57 | \n",
" М141БПЛТЛ005 | \n",
" 5 | \n",
" 7 | \n",
" 5 | \n",
" 5 | \n",
" 7 | \n",
" 4 | \n",
" 7 | \n",
" 4.0 | \n",
" 5 | \n",
" 4 | \n",
" 5 | \n",
" 5.0 | \n",
" 4 | \n",
" 4.0 | \n",
" 4 | \n",
" 8 | \n",
" 1 | \n",
"
\n",
" \n",
" 58 | \n",
" М141БПЛТЛ044 | \n",
" 4 | \n",
" 5 | \n",
" 7 | \n",
" 4 | \n",
" 6 | \n",
" 4 | \n",
" 4 | \n",
" 5.0 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 4.0 | \n",
" 6 | \n",
" NaN | \n",
" 5 | \n",
" 5 | \n",
" 1 | \n",
"
\n",
" \n",
" 59 | \n",
" 13051038 | \n",
" 5 | \n",
" 4 | \n",
" 4 | \n",
" 4 | \n",
" 9 | \n",
" 5 | \n",
" 5 | \n",
" 5.0 | \n",
" 5 | \n",
" 4 | \n",
" 4 | \n",
" NaN | \n",
" 7 | \n",
" 4.0 | \n",
" 4 | \n",
" 4 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" id catps mstat soc econ eng polth mstat2 phist law \\\n",
"0 М141БПЛТЛ024 7 9 8 8 9 8 10 8.0 7 \n",
"1 М141БПЛТЛ031 8 10 10 10 10 10 10 9.0 9 \n",
"2 М141БПЛТЛ075 9 9 9 10 9 10 9 8.0 9 \n",
"3 М141БПЛТЛ017 9 9 8 8 9 9 10 6.0 9 \n",
"4 М141БПЛТЛ069 10 10 10 10 10 10 9 8.0 8 \n",
"5 М141БПЛТЛ072 10 9 8 10 9 8 9 8.0 8 \n",
"6 М141БПЛТЛ020 8 7 7 6 9 10 8 8.0 7 \n",
"7 М141БПЛТЛ026 7 10 8 7 10 7 9 8.0 8 \n",
"8 М141БПЛТЛ073 7 9 8 8 9 8 9 8.0 8 \n",
"9 М141БПЛТЛ078 6 6 9 5 6 10 7 6.0 8 \n",
"10 М141БПЛТЛ060 7 8 7 7 9 8 8 5.0 7 \n",
"11 М141БПЛТЛ040 6 9 8 6 9 7 8 6.0 9 \n",
"12 М141БПЛТЛ065 9 9 8 4 8 8 7 9.0 8 \n",
"13 М141БПЛТЛ053 6 7 7 5 9 8 7 8.0 8 \n",
"14 М141БПЛТЛ015 6 9 7 6 9 7 9 4.0 7 \n",
"15 М141БПЛТЛ021 8 9 8 8 9 8 8 7.0 7 \n",
"16 М141БПЛТЛ018 7 7 9 7 9 7 8 6.0 6 \n",
"17 М141БПЛТЛ039 9 8 9 8 8 8 6 8.0 7 \n",
"18 М141БПЛТЛ036 8 10 7 8 8 6 9 4.0 8 \n",
"19 М141БПЛТЛ049 6 7 6 6 8 6 8 4.0 8 \n",
"20 06114043 8 8 10 5 8 8 8 10.0 7 \n",
"21 М141БПЛТЛ048 8 6 8 6 9 6 4 4.0 6 \n",
"22 М141БПЛТЛ034 6 9 7 6 9 6 8 6.0 7 \n",
"23 М141БПЛТЛ045 5 8 8 7 8 6 7 6.0 7 \n",
"24 М141БПЛТЛ033 5 9 8 7 9 7 9 7.0 7 \n",
"25 М141БПЛТЛ083 5 5 6 5 8 7 6 5.0 7 \n",
"26 М141БПЛТЛ008 10 8 8 9 8 10 9 8.0 9 \n",
"27 М141БПЛТЛ001 6 7 7 4 10 7 7 6.0 8 \n",
"28 М141БПЛТЛ038 7 9 6 4 9 6 7 6.0 7 \n",
"29 М141БПЛТЛ052 7 7 7 7 8 6 6 6.0 8 \n",
"30 М141БПЛТЛ011 7 6 8 6 9 6 6 5.0 6 \n",
"31 М141БПЛТЛ004 7 7 6 6 8 6 6 5.0 5 \n",
"32 М141БПЛТЛ010 6 6 7 6 9 7 7 6.0 7 \n",
"33 М141БПЛТЛ071 6 9 7 7 9 6 8 4.0 6 \n",
"34 М141БПЛТЛ035 5 6 7 6 8 5 5 4.0 6 \n",
"35 М141БПЛТЛ030 7 6 6 6 7 6 6 4.0 8 \n",
"36 М141БПЛТЛ070 5 5 6 4 8 6 5 5.0 6 \n",
"37 М141БПЛТЛ051 8 9 8 6 8 7 6 7.0 6 \n",
"38 М141БПЛТЛ046 5 7 7 4 7 5 8 5.0 7 \n",
"39 М141БПЛТЛ047 5 8 6 4 7 5 9 5.0 6 \n",
"40 М141БПЛТЛ063 5 5 6 4 8 4 4 4.0 5 \n",
"41 М141БПЛТЛ029 6 8 8 7 9 5 6 7.0 6 \n",
"42 М141БПЛТЛ064 7 8 6 7 6 6 8 4.0 6 \n",
"43 М141БПЛТЛ076 7 7 8 6 8 6 6 6.0 8 \n",
"44 М141БПЛТЛ062 7 7 7 6 9 6 6 5.0 6 \n",
"45 М141БПЛТЛ074 5 6 7 4 7 6 5 6.0 6 \n",
"46 130232038 6 7 6 5 8 4 8 4.0 8 \n",
"47 М141БПЛТЛ023 7 9 6 8 9 6 9 4.0 7 \n",
"48 М141БПЛТЛ054 7 8 6 4 8 6 4 4.0 6 \n",
"49 М141БПЛТЛ012 6 6 7 4 10 6 5 4.0 7 \n",
"50 М141БПЛТЛ006 6 5 6 5 8 5 5 5.0 6 \n",
"51 М141БПЛТЛ055 6 5 6 4 7 7 4 8.0 5 \n",
"52 М141БПЛТЛ007 6 7 7 6 7 6 7 4.0 5 \n",
"53 М141БПЛТЛ050 8 6 6 6 8 4 5 4.0 5 \n",
"54 М141БПЛТЛ066 7 10 7 7 9 5 8 4.0 6 \n",
"55 М141БПЛТЛ043 5 5 6 5 8 5 6 5.0 6 \n",
"56 М141БПЛТЛ084 6 7 8 4 8 5 5 NaN 8 \n",
"57 М141БПЛТЛ005 5 7 5 5 7 4 7 4.0 5 \n",
"58 М141БПЛТЛ044 4 5 7 4 6 4 4 5.0 4 \n",
"59 13051038 5 4 4 4 9 5 5 5.0 5 \n",
"\n",
" phil polsoc ptheo preg compp game wpol male \n",
"0 9 9 7.0 8 8.0 6 10 1 \n",
"1 10 10 9.0 8 8.0 9 10 1 \n",
"2 10 9 9.0 8 8.0 7 9 1 \n",
"3 9 9 8.0 8 8.0 8 9 0 \n",
"4 10 9 7.0 6 5.0 8 10 1 \n",
"5 10 9 7.0 8 8.0 9 9 0 \n",
"6 7 9 7.0 8 6.0 8 9 1 \n",
"7 8 8 8.0 8 7.0 7 8 0 \n",
"8 9 9 7.0 7 6.0 10 9 1 \n",
"9 6 9 6.0 8 8.0 6 7 0 \n",
"10 5 8 5.0 7 8.0 7 9 1 \n",
"11 5 8 5.0 8 5.0 7 10 0 \n",
"12 5 10 9.0 8 8.0 6 9 1 \n",
"13 6 8 7.0 8 6.0 9 9 0 \n",
"14 7 7 6.0 7 7.0 10 7 0 \n",
"15 7 6 6.0 8 6.0 7 8 0 \n",
"16 7 8 7.0 7 7.0 7 8 0 \n",
"17 6 9 6.0 7 8.0 4 9 1 \n",
"18 8 7 6.0 7 6.0 7 8 1 \n",
"19 5 9 6.0 8 5.0 6 8 0 \n",
"20 7 9 NaN 7 8.0 7 8 1 \n",
"21 4 8 4.0 6 7.0 7 8 0 \n",
"22 6 6 5.0 8 5.0 8 9 0 \n",
"23 7 8 6.0 8 6.0 5 8 0 \n",
"24 8 8 7.0 8 5.0 7 8 0 \n",
"25 5 7 5.0 7 5.0 4 7 0 \n",
"26 10 9 8.0 5 5.0 10 4 1 \n",
"27 6 8 4.0 6 6.0 4 8 0 \n",
"28 4 8 4.0 5 4.0 9 7 1 \n",
"29 6 7 5.0 8 6.0 5 7 1 \n",
"30 6 7 6.0 8 6.0 5 8 0 \n",
"31 5 6 5.0 7 5.0 8 8 0 \n",
"32 5 8 6.0 8 6.0 5 8 1 \n",
"33 7 7 6.0 5 NaN 5 7 0 \n",
"34 6 7 5.0 8 7.0 6 7 0 \n",
"35 5 5 5.0 8 5.0 7 9 1 \n",
"36 4 5 6.0 8 5.0 6 7 0 \n",
"37 6 6 5.0 4 4.0 5 5 1 \n",
"38 5 7 5.0 8 4.0 5 7 0 \n",
"39 4 6 4.0 7 4.0 8 8 0 \n",
"40 4 5 4.0 7 5.0 8 8 0 \n",
"41 5 8 5.0 7 4.0 5 7 0 \n",
"42 4 4 4.0 6 5.0 4 7 0 \n",
"43 6 8 5.0 7 4.0 4 6 0 \n",
"44 5 6 4.0 5 5.0 4 6 0 \n",
"45 6 8 6.0 6 6.0 8 8 1 \n",
"46 4 5 5.0 6 4.0 5 6 0 \n",
"47 7 7 6.0 4 4.0 7 5 1 \n",
"48 4 8 4.0 4 4.0 4 8 1 \n",
"49 5 7 4.0 5 4.0 4 8 1 \n",
"50 4 7 5.0 7 5.0 6 8 0 \n",
"51 4 6 4.0 6 5.0 4 5 1 \n",
"52 5 6 5.0 4 5.0 4 7 1 \n",
"53 5 6 4.0 5 4.0 6 6 0 \n",
"54 5 6 4.0 6 4.0 5 6 0 \n",
"55 4 5 4.0 5 NaN 4 6 0 \n",
"56 4 4 4.0 4 4.0 6 7 1 \n",
"57 4 5 5.0 4 4.0 4 8 1 \n",
"58 4 4 4.0 6 NaN 5 5 1 \n",
"59 4 4 NaN 7 4.0 4 4 1 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Так как в нашем случае таблица не очень большая, Python вывел ее на экран полностью. Если строк или столбцов было бы слишком много, Python вывел бы несколько первых и последних, а в середине бы поставил многоточие."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Описание показателей (переменных):**\n",
" \n",
"* id – номер студенческого билета\n",
"* catps\t– оценка по курсу *Категории политической науки*\n",
"* mstat\t– оценка по курсу *Математика и статистика*\n",
"* soc –\tоценка по курсу *Социология*\n",
"* econ\t– оценка по курсу *Экономика*\n",
"* eng\t– оценка по курсу *Английский язык*\n",
"* polth\t– оценка по курсу *История политических учений*\n",
"* mstat2\t– оценка по курсу *Математика и статистика (часть 2)*\n",
"* phist\t– оценка по курсу *Политическая история*\n",
"* law\t– оценка по курсу *Право*\n",
"* phil\t– оценка по курсу *Философия*\n",
"* polsoc\t– оценка по курсу *Политическая социология*\n",
"* ptheo\t– оценка по курсу *Политическая теория*\n",
"* preg\t– оценка по курсу *Политическая регионалистика*\n",
"* compp\t– оценка по курсу *Сравнительная политика*\n",
"* game\t– оценка по курсу *Теория игр*\n",
"* wpol\t– оценка по курсу *Мировая политика и международные отношения*\n",
"* male – пол (1 ‒ мужской, 0 ‒ женский)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Так как «в обычной жизни» за рамками курса данные редко загружаются по готовой и удобной ссылке, давайте потренируемся загружать таблицы из локальных файлов на компьютере."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"По умолчанию Python видит только те файлы, которые хранятся в текущей рабочей папке – папке, откуда запускается Python или, в нашем случае, Jupyter Notebook. Чтобы узнать, какая папка является рабочей, необходимо загрузить модуль `os` и вызвать функцию `getcwd()`:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"import os # от operating system"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'/Users/allat/Desktop'"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"os.getcwd() # от get current working directory"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Эта функция возвращает путь к рабочей папке. В моем случае это `'/Users/allat/Desktop`, на компьютере с Windows в классе ‒ `C:\\\\Users\\\\student`. Python подсказывает, что в моем случае рабочей папкой является *Рабочий стол*, который лежит в папке *oem*, в *home*. Обратите внимание: в Mac OS и Linux слэши между названиями папок прямые и одинарные, в Windows – обратные и двойные. Плюс, в Windows всегда в начале прописывается диск (`C:` или иные). На вид слэшей нужно всегда обращать внимание: Python не воспринимает одинарные обратные слэши `\\` и будет ругаться, если мы пропишем путь к файлу с ними. Их нужно заменить на прямые слэши `/`, и тогда всё будет хорошо."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Иногда удобно положить файл, с которым мы будем работать, в рабочую папку. Можно явно переместить файл из папки в папку, но при работе в Jupyter можно сделать проще – воспользоваться кнопкой *Upload* на странице *Home*. Кто пользуется командной строкой, есть альтернатива: запустить сам Jupyter Notebook из той папки, где хранятся файлы для работы.\n",
"\n",
"А так можно изменить рабочую папку, прописав новый путь (обратите внимание, папка должна существовать; если ее нет, Python не создаст её автоматически, а выдаст ошибку):"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"os.chdir(\"/Users/allat/Downloads\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Теперь перейдем к загрузке самого файла. Не всегда удобно перемещать файл в рабочую папку или изменять путь к рабочей папке. Иногда проще прописать путь к самому файлу. Если неясно, как он должен выглядеть, всегда можно узнать, скопировав расположение файла из *Свойств*, кликнув правой клавишей на файл (не забудьте после пути к файлу указать название файла с расширением и обратите внимание на слэши). "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(\"scores2.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Какую сводную информацию по таблице можно получить? Например, число переменных (столбцов) и наблюдений (строк), а также число заполненных значений. "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"RangeIndex: 60 entries, 0 to 59\n",
"Data columns (total 18 columns):\n",
"id 60 non-null object\n",
"catps 60 non-null int64\n",
"mstat 60 non-null int64\n",
"soc 60 non-null int64\n",
"econ 60 non-null int64\n",
"eng 60 non-null int64\n",
"polth 60 non-null int64\n",
"mstat2 60 non-null int64\n",
"phist 59 non-null float64\n",
"law 60 non-null int64\n",
"phil 60 non-null int64\n",
"polsoc 60 non-null int64\n",
"ptheo 58 non-null float64\n",
"preg 60 non-null int64\n",
"compp 57 non-null float64\n",
"game 60 non-null int64\n",
"wpol 60 non-null int64\n",
"male 60 non-null int64\n",
"dtypes: float64(3), int64(14), object(1)\n",
"memory usage: 8.5+ KB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Какую информацию выдал метод `.info()`? Во-первых, он сообщил нам, что `df` является объектом *DataFrame*. Во-вторых, он вывел число строк (`60 entries`) и показал их индексы (`М141БПЛТЛ024 to 13051038`). В-третьих, он вывел число столбцов (`total 17 columns`). Наконец, он выдал информацию по каждому столбцу. Остановимся на этом поподробнее.\n",
"\n",
"В выдаче выше представлено, сколько непустых элементов содержится в каждом столбце. Непустые элементы `non-null` – это всё, кроме пропущенных значений, которые кодируются особым образом (`NaN` – от * Not A Number*). В нашей таблице почти все столбцы заполнены полностью: 60 ненулевых элементов из 60. Но есть столбцы с пропущенными значениями: *phist*, *ptheo*, *compp*.\n",
"\n",
"Далее указан тип каждого столбца, целочисленный `int64` и с плавающей точкой`float64`. Что означают числа в конце? Это объем памяти, который требуется для хранения."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Сводную статистическую информацию можно получить с помощью метода `.describe()`."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" catps | \n",
" mstat | \n",
" soc | \n",
" econ | \n",
" eng | \n",
" polth | \n",
" mstat2 | \n",
" phist | \n",
" law | \n",
" phil | \n",
" polsoc | \n",
" ptheo | \n",
" preg | \n",
" compp | \n",
" game | \n",
" wpol | \n",
" male | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 60.000000 | \n",
" 60.000000 | \n",
" 60.000000 | \n",
" 60.000000 | \n",
" 60.000000 | \n",
" 60.000000 | \n",
" 60.000000 | \n",
" 59.000000 | \n",
" 60.000000 | \n",
" 60.000000 | \n",
" 60.000000 | \n",
" 58.000000 | \n",
" 60.000000 | \n",
" 57.000000 | \n",
" 60.000000 | \n",
" 60.000000 | \n",
" 60.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 6.700000 | \n",
" 7.466667 | \n",
" 7.216667 | \n",
" 6.116667 | \n",
" 8.350000 | \n",
" 6.600000 | \n",
" 7.033333 | \n",
" 5.830508 | \n",
" 6.866667 | \n",
" 5.966667 | \n",
" 7.183333 | \n",
" 5.603448 | \n",
" 6.700000 | \n",
" 5.631579 | \n",
" 6.250000 | \n",
" 7.566667 | \n",
" 0.450000 | \n",
"
\n",
" \n",
" std | \n",
" 1.417804 | \n",
" 1.578099 | \n",
" 1.208608 | \n",
" 1.718214 | \n",
" 0.971195 | \n",
" 1.638519 | \n",
" 1.707081 | \n",
" 1.662492 | \n",
" 1.213856 | \n",
" 1.850027 | \n",
" 1.589069 | \n",
" 1.413465 | \n",
" 1.356716 | \n",
" 1.422166 | \n",
" 1.781496 | \n",
" 1.430499 | \n",
" 0.501692 | \n",
"
\n",
" \n",
" min | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 6.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 4.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 6.000000 | \n",
" 6.000000 | \n",
" 6.000000 | \n",
" 5.000000 | \n",
" 8.000000 | \n",
" 6.000000 | \n",
" 6.000000 | \n",
" 4.000000 | \n",
" 6.000000 | \n",
" 4.750000 | \n",
" 6.000000 | \n",
" 4.250000 | \n",
" 6.000000 | \n",
" 4.000000 | \n",
" 5.000000 | \n",
" 7.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 50% | \n",
" 7.000000 | \n",
" 7.000000 | \n",
" 7.000000 | \n",
" 6.000000 | \n",
" 8.000000 | \n",
" 6.000000 | \n",
" 7.000000 | \n",
" 6.000000 | \n",
" 7.000000 | \n",
" 5.500000 | \n",
" 7.000000 | \n",
" 5.000000 | \n",
" 7.000000 | \n",
" 5.000000 | \n",
" 6.000000 | \n",
" 8.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 75% | \n",
" 7.250000 | \n",
" 9.000000 | \n",
" 8.000000 | \n",
" 7.000000 | \n",
" 9.000000 | \n",
" 8.000000 | \n",
" 8.000000 | \n",
" 7.000000 | \n",
" 8.000000 | \n",
" 7.000000 | \n",
" 8.000000 | \n",
" 6.000000 | \n",
" 8.000000 | \n",
" 7.000000 | \n",
" 7.250000 | \n",
" 8.250000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" max | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 9.000000 | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 9.000000 | \n",
" 8.000000 | \n",
" 8.000000 | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" catps mstat soc econ eng polth \\\n",
"count 60.000000 60.000000 60.000000 60.000000 60.000000 60.000000 \n",
"mean 6.700000 7.466667 7.216667 6.116667 8.350000 6.600000 \n",
"std 1.417804 1.578099 1.208608 1.718214 0.971195 1.638519 \n",
"min 4.000000 4.000000 4.000000 4.000000 6.000000 4.000000 \n",
"25% 6.000000 6.000000 6.000000 5.000000 8.000000 6.000000 \n",
"50% 7.000000 7.000000 7.000000 6.000000 8.000000 6.000000 \n",
"75% 7.250000 9.000000 8.000000 7.000000 9.000000 8.000000 \n",
"max 10.000000 10.000000 10.000000 10.000000 10.000000 10.000000 \n",
"\n",
" mstat2 phist law phil polsoc ptheo \\\n",
"count 60.000000 59.000000 60.000000 60.000000 60.000000 58.000000 \n",
"mean 7.033333 5.830508 6.866667 5.966667 7.183333 5.603448 \n",
"std 1.707081 1.662492 1.213856 1.850027 1.589069 1.413465 \n",
"min 4.000000 4.000000 4.000000 4.000000 4.000000 4.000000 \n",
"25% 6.000000 4.000000 6.000000 4.750000 6.000000 4.250000 \n",
"50% 7.000000 6.000000 7.000000 5.500000 7.000000 5.000000 \n",
"75% 8.000000 7.000000 8.000000 7.000000 8.000000 6.000000 \n",
"max 10.000000 10.000000 9.000000 10.000000 10.000000 9.000000 \n",
"\n",
" preg compp game wpol male \n",
"count 60.000000 57.000000 60.000000 60.000000 60.000000 \n",
"mean 6.700000 5.631579 6.250000 7.566667 0.450000 \n",
"std 1.356716 1.422166 1.781496 1.430499 0.501692 \n",
"min 4.000000 4.000000 4.000000 4.000000 0.000000 \n",
"25% 6.000000 4.000000 5.000000 7.000000 0.000000 \n",
"50% 7.000000 5.000000 6.000000 8.000000 0.000000 \n",
"75% 8.000000 7.000000 7.250000 8.250000 1.000000 \n",
"max 8.000000 8.000000 10.000000 10.000000 1.000000 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"В случае количественных показателей этот метод возвращает таблицу с основными описательными статистиками: \n",
"\n",
"* count – число непустых (заполненных) значений\n",
"* mean – среднее арифметическое\n",
"* std – стандартное отклонение (показатель разброса данных относительно среднего значения)\n",
"* min – миниммальное значение\n",
"* max – максимальное значение\n",
"* 25% – нижний квартиль (значение, которое 25% значений не превышают)\n",
"* 50% – медиана (значение, которое 50% значений не превышают)\n",
"* 75% – верхний квартиль (значение, которое 75% значений не превышают)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}