В этом разделе рассмотрены методы работы с данными, хранящимися в формате csv, и создание простых графиков.

Необходимые импорты и настройки

In [1]:
# Немедленный вывод графиков
%matplotlib inline

import pandas as pd
import matplotlib.pyplot as plt

plt.style.use('ggplot')  # Эстетически приятные графики
plt.rcParams['figure.figsize'] = (15, 5)  # Размер изображений

Чтение из csv файла

Для обратки CSV файлов используется функция read_csv. Изначально предполагается, что разделитель полей — запятая.

Рассмотрим данные о велосипедистах в Монреале, которые можно скачать по этой ссылке.

Этот датасет содержит информацию о числе велосипедистов на 7 маршрутах в Монреале за каждый день.

Чтобы корректно загрузить данные, необходимо указать следующие параметры:

  • Установить разделитель как ;
  • Задать кодировку 'latin1' вместо 'utf8'
  • Уточнить, что в колонке 'Date' хранятся даты
  • Указать порядок в формате YYYY-DD-MM (сначала день, затем месяц)
  • Заменить индекс на значения из колонки 'Date'
In [2]:
fixed_df = pd.read_csv('data/bikes.csv',  # Путь к скачанному файлу
                           sep=';', encoding='latin1',
                           parse_dates=['Date'], dayfirst
                                    =True,
                           index_col='Date')
fixed_df[:3]
Out[2]:
Berri 1 Brébeuf (données non disponibles) Côte-Sainte-Catherine Maisonneuve 1 Maisonneuve 2 du Parc Pierre-Dupuy Rachel1 St-Urbain (données non disponibles)
Date
2012-01-01 35 NaN 0 38 51 26 10 16 NaN
2012-01-02 83 NaN 1 68 153 53 6 43 NaN
2012-01-03 135 NaN 2 104 248 89 3 58 NaN

Выбор колонок

При работе с CSV через pandas создается объект, называемый DataFrame, состоящий из строк и столбцов. Получить доступ к нужным столбцам можно аналогично получению элементов словаря.

Пример:

In [3]:
fixed_df['Berri 1'][:10]
Out[3]:
Date
2012-01-01     35
2012-01-02     83
2012-01-03    135
2012-01-04    144
2012-01-05    197
2012-01-06    146
2012-01-07     98
2012-01-08     95
2012-01-09    244
2012-01-10    397
Name: Berri 1, dtype: int64

Графики

Чтобы построить график, достаточно добавить .plot() в конце! Что может быть проще?

Как видно, зимой (в январе, феврале и марте) велосипедисты редко появляются на трассах.

In [4]:
fixed_df['Berri 1'].plot()
Out[4]:
График данных о велосипедистах

Возможно также построить график для всех колонок, причем размер графика можно немного увеличить для удобства восприятия.

Графики показывают, что во все маршрутные дни поведение трасс схоже – если одна плоха для велопоездок, то вероятно так будет и на остальных.

In [5]:
fixed_df.plot(figsize=(15, 10))
Out[5]:
Схожесть данных о велосипедистах

Вопросы для самопроверки:

  1. Какие библиотеки необходимо импортировать для работы с данными в формате CSV и построения графиков?
  2. Какой командой загружаются данные из CSV-файла с учетом разделителя и кодировки?
  3. Какие дополнительные параметры нужно указать при чтении CSV-файла для корректной обработки дат?
  4. Как построить график для одного столбца?
  5. Как можно визуализировать все колонки одновременно и поменять размер изображения графика?