мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
python:week21 [08/10/2018 04:07] – [Конкатенация] ybezrukov | python:week21 [08/10/2018 13:42] (текущий) – [Группировка] ybezrukov | ||
---|---|---|---|
Строка 64: | Строка 64: | ||
df.apply(np.sum, | df.apply(np.sum, | ||
</ | </ | ||
- | |||
- | |||
- | ===== Слияние ===== | ||
- | |||
- | ==== Конкатенация ==== | ||
===== Группировка ===== | ===== Группировка ===== | ||
Строка 121: | Строка 116: | ||
</ | </ | ||
- | Группировать можно и иерархически, | + | Группировать можно и иерархически, |
<code python> | <code python> | ||
Строка 138: | Строка 133: | ||
two 2.414034 | two 2.414034 | ||
</ | </ | ||
+ | |||
+ | Все значения из столбцов можно объединить с помощью другой функции | ||
+ | |||
+ | <code python> | ||
+ | df.groupby([' | ||
+ | </ | ||
+ | |||
+ | Или | ||
+ | |||
+ | <code python> | ||
+ | df.groupby([' | ||
+ | </ | ||
+ | |||
+ | |||
+ | После группировки столбцы A и B стали элементами составного индекса. Но это не помешает фильтровать строки по значениями этого индекса | ||
+ | <code python> | ||
+ | df.index.get_level_values(' | ||
+ | </ | ||
+ | |||
+ | ===== Временные последовательности ===== | ||
+ | |||
+ | Временная последовательность отражает зависимость некоторого параметра от времени, | ||
+ | |||
+ | Создадим такую временную последовательность | ||
+ | |||
+ | <code python> | ||
+ | |||
+ | rng = pd.date_range(' | ||
+ | |||
+ | ts = pd.Series(np.random.randn(len(rng)), | ||
+ | |||
+ | print(ts.head()) | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | 2011-01-01 00: | ||
+ | 2011-01-01 01: | ||
+ | 2011-01-01 02: | ||
+ | 2011-01-01 03: | ||
+ | 2011-01-01 04: | ||
+ | Freq: H, dtype: float64 | ||
+ | </ | ||
+ | |||
+ | Посчитаем, | ||
+ | |||
+ | <code python> | ||
+ | print(ts.resample(' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | 2011-01-01 | ||
+ | 2011-01-02 | ||
+ | 2011-01-03 | ||
+ | Freq: D, dtype: float64 | ||
+ | </ | ||
+ | |||
+ | Здесь мы встретились с операцией передискретизации или ресемплинга. Эта операция изменяет частоту с которой записаны значения параметра, | ||
+ | |||
+ | ===== Диаграммы ===== | ||
+ | pandas был бы не pandas если бы не давал возможности легко нарисовать таблицу на диаграмме. Для отображения картинки библиотека использует уже знакомый matplotlib. | ||
+ | |||
+ | Например | ||
+ | |||
+ | <code python> | ||
+ | ts = pd.Series(np.random.randn(1000), | ||
+ | ts = ts.cumsum() # Посчитаем кумулятивную сумму для всех значений | ||
+ | |||
+ | ts.plot() # и отобразим ее на экране | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Можно рисовать значения и из таблиц с множеством столбцов | ||
+ | |||
+ | <code python> | ||
+ | df = pd.DataFrame(np.random.randn(1000, | ||
+ | df = df.cumsum() | ||
+ | plt.figure() | ||
+ | df.plot() | ||
+ | plt.legend(loc=' | ||
+ | </ | ||
+ | |||
+ | ====== Задача 6 ====== | ||
+ | Решить задачу 5 с помощью функции группировки | ||
+ | |||
+ | |||
+ | ====== Задача 7 ====== | ||
+ | Найти наибольшую и наименьшую температуры | ||
+ | - за всю историю наблюдений | ||
+ | - за год | ||
+ | - за месяц | ||
+ | |||
+ | ====== Задача 8 ====== | ||
+ | Нарисовать среднее значение температуры по годам и месяцам | ||
+ | |||
+ | ====== Задача 9 ====== | ||
+ | Найти год с самым жарким месяцем | ||
+ |