Найти тему
Дата Сайентист

Анализ данных по иммиграции в Канаду с Pandas

Оглавление

Набор данных

Данные об иммиграции в Канаду взяты из открытых источников с сайта Организации Объединенных Наций

Датасет содержит ежегодные данные за период с 1980 по 2013 гг. о потоках международных иммигрантов, зарегистрированных в странах прибытия. Эти данные содержат приток и отток мигрантов в зависимости от их места рождения, гражданства, места предыдущего / следующего проживания, как для иностранцев, так и для граждан. В текущей версии представлены данные по 45 странам.

www.un.org
www.un.org

В этой работе мы сосредоточимся на иммиграционных данных Канады.

Базовые методы Pandas

Изучение данных проводилось с помощью библиотеки Pandas — важного набора инструментов для анализа данных для Python.

Pandas - это пакет Python, обеспечивающий быстрое и гибкое изменение структуры данных. Пакет предназначен для того, чтобы сделать работу с данными простой и интуитивно понятной. Он призван стать фундаментальным строительным блоком высокого уровня для практического анализа реальных данных на Python.

Pandas активно используется для обработки, анализа и визуализации данных. Познакомиться со Справочником API Pandas можно здесь.

Для работы используем интегрированнную среду разработки IDE Jupiter Notebook.

В начале имортируем модули для анализа данных Pandas и NumPy, затем читаем данные с помощью метода read_excel().

Проверить правильность загрузки данных можно методом head(), который открывает 5 первых строк таблицы данных, и функции tail(), открывающей 5 последних строк.

Jupiter Notebook
Jupiter Notebook

При анализе набора данных всегда полезно начинать с получения базовой информации о фрейме данных. Это можно сделать с помощью метода info(), который выдаёт краткий обзор фрейма данных.

Чтобы получить список заголовков столбцов, можем вызвать параметр фрейма данных .columns.

Аналогично, чтобы получить список индексов, используем параметр .index.

-4

Чтобы получить индекс и столбцы в виде списков, можно использовать метод .tolist().

Чтобы просмотреть размеры фрейма данных, используем параметр .shape.

Очистим набор данных, удалив несколько ненужных столбцов, используя метод Pandas drop().

-5

Переименуем столбцы, чтобы они имели смысл. Для этого можно использовать метод rename(), создав словарь старых и новых имен.

Добавим столбец «Total», в котором суммируется общее количество иммигрантов по странам за весь период с 1980 по 2013 год.

Проверить, сколько пустых объектов есть в наборе данных, можно использовав метод isnull.

-6

Наконец, посмотрим краткую сводку по каждому столбцу в фреймворке данных с помощью метода describe(). Этод метод выводит количество строк в столбце, среднее значение, стандартное отклонение, распеределение по квартам 25%, 50%, 75%, а также минимальное и максимальное значение в столбце.

-7

Индексация и выборка данных в Pandas

Выборка по столбцам

Выполним фильтрацию по списку стран (столбец «Country»), а также по списку стран с данными по годам: 1980 - 1985.

-8

Выборка по строкам

Есть 3 основных способа выбора строк:

df.loc [label] # фильтрует по меткам индекса / столбца

df.iloc [index] # фильтрует по позициям индекса / столбца

Прежде чем продолжить, обратите внимание, что индекс набора данных по умолчанию представляет собой числовой диапазон от 0 до 194. Это очень затрудняет выполнение запроса по конкретной стране. Например, для поиска данных по России необходимо знать значение соответствующего индекса.

Это можно легко исправить, установив столбец «Country» в качестве индекса с помощью метода set_index ().

-9

Давайте посмотрим количество иммигрантов из России для следующих сценариев:

  1. Данные полной строки (все столбцы)
-10

2. За 2013 год

3. С 1980 по 1985 год.

-11

Название столбцов типа integer (например, года) могут ввести в заблуждение. Например, 2013 год можно спутать с индексом 2013. Чтобы избежать этой двусмысленности, преобразуем имена столбцов в тип string: с «1980» по «2013».

-12

Фильтрация по критерию

Чтобы отфильтровать фрейм данных на основе условия, мы просто передаем условие как boolean вектор.

Например, отфильтруем фрейм данных, чтобы показать данные по европейским странам (AreaName = Europe).

-13

Наконец рассмотрим изменения, которые мы внесли в фреймворк.

-14