Найти в Дзене
Python Lounge

Анализ данных с помощью pandas. Часть 1: Чтение данных из csv файла

Оглавление

Эта часть показывает способ обработки данных, хранящихся в формате 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 различных велосипедных дорожках Монреаля, каждый день.

Просто взять и прочитать с помощью read_csv не получится, нужно задать аргументы, которые сделают следующее:

  • Изменят разделитель на ;
  • Изменят кодировку на '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]

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

Когда вы обрабатываете 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]:

-2

Мы также можем построить график для всех колонок. Также мы сделаем картинку чуть-чуть побольше.

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

In [5]:

fixed_df.plot(figsize=(15, 10))

Out[5]:

-3

На этом данная часть заканчивается. Подписывайтесь и ждите продолжения