Анализ данных с помощью 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'
fixed_df = pd.read_csv('data/bikes.csv', # Это то, куда вы скачали файл
sep=';', encoding='latin1',
parse_dates=['Date'], dayfirst=True,
index_col='Date')
fixed_df[:3]
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]
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()
Мы также можем построить график для всех колонок. Также мы сделаем картинку чуть-чуть побольше.
Мы видим, что все велосипедные дорожки ведут себя в основном одинаково - если это плохой день для велосипедистов, то это плохой день везде.
In [5]:fixed_df.plot(figsize=(15, 10))
На этом данная часть заканчивается. Подписывайтесь и ждите продолжения!