- Getting started#
- Intro to pandas#
- Coming from…#
- Tutorials#
- Изучаем pandas. Урок 1. Введение в pandas и его установка
- Что такое pandas?
- Установка pandas
- P.S.
- Изучаем pandas. Урок 1. Введение в pandas и его установка : 10 комментариев
- Введение в анализ данных с помощью Pandas
- Основные структуры данных и их загрузка
- Базовые операции с наборами данных
- Агрегация данных
- Заключение
Getting started#
pandas is part of the Anaconda distribution and can be installed with Anaconda or Miniconda:
pandas can be installed via pip from PyPI.
Installing a specific version? Installing from source? Check the advanced installation page.
Intro to pandas#
When working with tabular data, such as data stored in spreadsheets or databases, pandas is the right tool for you. pandas will help you to explore, clean, and process your data. In pandas, a data table is called a DataFrame .
pandas supports the integration with many file formats or data sources out of the box (csv, excel, sql, json, parquet,…). Importing data from each of these data sources is provided by function with the prefix read_* . Similarly, the to_* methods are used to store data.
Selecting or filtering specific rows and/or columns? Filtering the data on a condition? Methods for slicing, selecting, and extracting the data you need are available in pandas.
pandas provides plotting your data out of the box, using the power of Matplotlib. You can pick the plot type (scatter, bar, boxplot,…) corresponding to your data.
There is no need to loop over all rows of your data table to do calculations. Data manipulations on a column work elementwise. Adding a column to a DataFrame based on existing data in other columns is straightforward.
Basic statistics (mean, median, min, max, counts…) are easily calculable. These or custom aggregations can be applied on the entire data set, a sliding window of the data, or grouped by categories. The latter is also known as the split-apply-combine approach.
Change the structure of your data table in multiple ways. You can melt() your data table from wide to long/tidy form or pivot() from long to wide format. With aggregations built-in, a pivot table is created with a single command.
Multiple tables can be concatenated both column wise and row wise as database-like join/merge operations are provided to combine multiple tables of data.
pandas has great support for time series and has an extensive set of tools for working with dates, times, and time-indexed data.
Data sets do not only contain numerical data. pandas provides a wide range of functions to clean textual data and extract useful information from it.
Coming from…#
Are you familiar with other software for manipulating tablular data? Learn the pandas-equivalent operations compared to software you already know:
The R programming language provides the data.frame data structure and multiple packages, such as tidyverse use and extend data.frame for convenient data handling functionalities similar to pandas.
Already familiar to SELECT , GROUP BY , JOIN , etc.? Most of these SQL manipulations do have equivalents in pandas.
The data set included in the STATA statistical software suite corresponds to the pandas DataFrame . Many of the operations known from STATA have an equivalent in pandas.
Users of Excel or other spreadsheet programs will find that many of the concepts are transferrable to pandas.
The SAS statistical software suite also provides the data set corresponding to the pandas DataFrame . Also SAS vectorized operations, filtering, string processing operations, and more have similar functions in pandas.
Tutorials#
For a quick overview of pandas functionality, see 10 Minutes to pandas .
You can also reference the pandas cheat sheet for a succinct guide for manipulating data with pandas.
The community produces a wide variety of tutorials available online. Some of the material is enlisted in the community contributed Community tutorials .
Изучаем pandas. Урок 1. Введение в pandas и его установка
Это первый урок из цикла, посвященного библиотеке p andas. Данный цикл будет входить в большую группу обучающих материалов, тематику которых можно определить как “Машинное обучение и анализ данных”. pandas – это удобный и быстрый инструмент для работы с данными, обладающий большим функционалом.
Что такое pandas?
Если очень кратко, то pandas – это библиотека, которая предоставляет очень удобные с точки зрения использования инструменты для хранения данных и работе с ними. Если вы занимаетесь анализом данных или машинным обучением и при этом используете язык Python , то вы просто обязаны знать и уметь работать с pandas .
pandasвходи в группу проектов, спонсируемых numfocus . Numfocus – это организация, которая поддерживает различные проекты, связанные с научными вычислениями.
Официальный сайт pandas находится здесь . Стоит отметить, что документация по этому продукту очень хорошая . Если вы знаете английский язык, то для вас не будет большой проблемой разобраться с pandas .
Особенность pandas состоит в том, что эта библиотека очень быстрая, гибкая и выразительная. Это важно, т.к. она используется с языком Python , который не отличается высокой производительностью. pandas прекрасно подходит для работы с одномерными и двумерными таблицами данных, хорошо интегрирован с внешним миром – есть возможность работать с файлами CSV , таблицами Excel , может стыковаться с языком R .
Установка pandas
Для проведения научных расчетов, анализа данных или построения моделей в рамках машинно обучения для языка Python существуют прекрасное решение – Anaconda . Anaconda – это пакет, который содержит в себе большой набор различных библиотек, интерпретатор языка Python и несколько сред для разработки. Подробно об установке пакета Anaconda написано в этой статье .
pandas присутствует в стандартной поставке Anaconda . Если же его там нет, то его можно установить отдельно. Для этого стоит воспользоваться пакетным менеджером, который входит в состав Anaconda , который называется conda . Для его запуска необходимо перейти в каталог [Anaconda install path]\Scripts\ в Windows . В операционной системе Linux , после установки Anaconda менеджер conda должен быть доступен везде.
В случае, если требуется конкретная версия pandas , то ее можно указать при установке.
При необходимости, можно воспользоваться пакетным менеджером pip , входящим в состав дистрибутива Python .
Если вы используете Linux , то ещё одни способ установить pandas – это воспользоваться пакетным менеджером самой операционной системы. Для Ubuntu это выглядит так:
>sudo apt-get install python-pandas
После установки необходимо проверить, что pandas установлен и корректно работает. Для этого запустите интерпретатор Python и введите в нем следующие команды.
>>> import pandas as pd >>> pd.test()
В результате в окне терминала должен появиться следующий текст:
Running unit tests for pandas pandas version 0.18.1 numpy version 1.11.1 pandas is installed in c:\Anaconda3\lib\site-packages\pandas Python version 3.5.2 |Anaconda 4.1.1 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] nose version 1.3.7 . ---------------------------------------------------------------------- Ran 11 tests in 0.422s OK
Это будет означать, что pandas установлен и его можно использовать.
P.S.
Изучаем pandas. Урок 1. Введение в pandas и его установка : 10 комментариев
- Дмитрий 04.09.2018 что делать если тест выдал такой результат? 12 failed, 14997 passed, 1193 skipped, 14 xfailed, 2 xpassed, 23 warnings in 753.69 seconds
- writer 04.09.2018 Думаю ничего в этом страшного нет, это означает, что часть тестов прошла с ошибками, часть была пропущена и т.п. Просто попробуйте запустить примеры из следующей статьи, посвященной pandas.
- Алексей 04.10.2021 “В PyCharm просто в терминале пропишите pip install pandas” (с) SyntaxError: invalid syntax
- writer Автор записи 15.11.2018 Добрый день!
Вы работаете с Windows или Linux? Какая версия ОС у вас используется? Я могу попробовать на виртуалке развернуть и на чистой инсталляции проверить.
Введение в анализ данных с помощью Pandas
Сегодня речь пойдет о пакете Pandas. Данный пакет делает Python мощным инструментом для анализа данных. Пакет дает возможность строить сводные таблицы, выполнять группировки, предоставляет удобный доступ к табличным данным, а при наличии пакета matplotlib дает возможность рисовать графики на полученных наборах данных. Далее будут показаны основы работы с пакетом, такие как загрузка данных, обращение к полям, фильтрация и построение сводных.
Основные структуры данных и их загрузка
from pandas import read_csv df1 = read_csv("df1.txt") df2 = read_csv("df2.txt",";") #второй аргумент задает разделитель
Теперь у нас есть 2 набора данных df1, содержащий магазины и количество отгрузок:
shop | qty |
---|---|
427 | 3 |
707 | 4 |
957 | 2 |
437 | 1 |
И df2, содержащий магазин и его город:
shop | name |
---|---|
347 | Киев |
427 | Самара |
707 | Минск |
957 | Иркутск |
437 | Москва |
Базовые операции с наборами данных
- в набор с городами магазинов добавим поле `country` и заполним соответствующими странами
- выберем украинский магазин и поменяем его номер
- добавим магазин, полученный на предыдущем шаге, к общему списку
- добавим количество из df1 к набору df2
- построим сводную таблицу по странам и количеству отгрузок
country = [u'Украина',u'РФ',u'Беларусь',u'РФ',u'РФ'] df2.insert(1,'country',country)
- номер позиции, куда будет вставлен новый столбец
- имя нового столбца
- массив значений столбца (в нашем случае, это обычный список list)
- через точку — НаборДанных.ИмяПоля
- в квадратных скобках – НаборДанных[‘ИмяПоля’]
t = df2[df2.country == u'Украина'] t.shop = 345
Результатом выполнения данного кода, будет новый промежуточный набор данных t, содержащий одну запись:
shop | country | name |
---|---|---|
345 | Украина | Киев |
Для того чтобы добавить полученную на предыдущем шаге запись, нужно выполнить функцию append(), в качестве аргумента которой передается набор данных, который нужно добавить к исходному:
Агрегация данных
Теперь к нашему основному списку магазинов df2, можно подтянуть количество из набора данных df1. Сделать это можно с помощью функции merge(), которая соединяет два набора данных (аналог join в SQL):
res = df2.merge(df1, 'left', on='shop')
- набор данных (который будет присоединен к исходному)
- тип соединения
- поле, по которому происходит соединение
- список столбцов, по которым будет считаться агрегированные значение
- список столбцов, которые будут строками итоговой таблицы
- функция, которая используется для агрегации
- параметр для замены пустых значений на 0
res.pivot_table(['qty'],['country'], aggfunc='sum', fill_value = 0)
Заключение
В качестве заключения хотелось бы сказать, Pandas является неплохой альтернативой Excel при работе с большими объемами данных. Показанные функции это только верхушка айсберга под название Pandas. В дальнейшем, я планирую написать серию статей в которых будет показана вся мощь данного пакета.