Введение в Pandas для Data Science

В этом уроке вы научитесь погружаться в удивительный мир Pandas. Pandas — это пакет Python, который предоставляет быстрые и гибкие структуры данных, используемые для манипулирования и анализа данных. К концу этого урока вы узнаете, как:

  • Установите pandas для Python с помощью pip или conda.

  • Понимание серий pandas и объектов dataframe

  • Создайте фрейм данных с нуля

  • Импортируйте кадр данных из файла .csv или файла .xls.

Оглавление

Что такое Pandas для Python?

Pandas — это пакет Python, который позволяет работать с табличными данными и предоставляет множество полезных методов и функций для их манипуляции и анализа. Python особенно хорошо подходит для работы с различными типами данных (такими как строки, целые числа, даты и время) в табличном формате.

Она может считывать данные из многих источников, таких как интернет, Excel-файлы и базы данных SQL. Данные могут быть упорядоченными или неупорядоченными и поддерживаться разными типами данных. Библиотека также отлично обрабатывает пропущенные данные и позволяет обновлять, вставлять и удалять данные, используя векторизированные форматы.

Данные хранятся в двух основных структурах данных: объектах Series и DataFrame библиотеки Pandas. Эти структуры легко сортировать, фильтровать и объединять с другими данными.

Все это к тому, что Pandas — невероятное дополнение к среде Python. Он поддерживается в широком спектре областей (включая финансы, науку о данных и науку) и признан одной из ключевых библиотек Python. Благодаря его простоте использования и широким приложениям для науки о данных, вы узнаете о Pandas в следующих нескольких разделах!

Как установить Pandas на Python?

pandas не является частью стандартной библиотеки Python, поэтому вам нужно сначала установить его. К счастью, это довольно легко сделать с помощью pip или conda. Мы можем сделать это, написав одну из этих строк в наш терминал или командную строку, в зависимости от вашего предпочтения по управлению пакетами:

pip install pandas
# conda install pandas

Как только вы запустите установку, вы заметите, что также будет установлено множество зависимостей. После успешной установки pandas, вы можете импортировать библиотеку как обычно. Как правило, pandas импортируется с псевдонимом pd:

# Importing pandas
import pandas as pd

Если этот код выполняется без каких-либо ошибок, значит, ваша установка pandas прошла успешно! В следующем разделе вы узнаете о структуре данных series в Pandas.

Что такое Pandas Series?

Объект series в Pandas представляет собой одномерную структуру данных. Его можно сравнить со столбцом в таблице. Pandas описывает это как одномерный массив с однородным типом данных. Это означает, что данные выровнены вдоль одной оси и имеют одинаковый тип данных.

Серия Pandas — это класс данных, который содержит данные, имеет индекс и определенный тип данных. Давайте посмотрим, как мы можем создать серию Pandas:

# Creating a Pandas series
import pandas as pd

sample_series = pd.Series()
print(sample_series)

# Returns: Series([], dtype: float64)

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

# Creating a Pandas series with data
sample_series = pd.Series(['Nik', 'Kate', 'Jane', 'Jim'])
print(sample_series)

# Returns: 
# 0     Nik
# 1    Kate
# 2    Jane
# 3     Jim
# dtype: object

Видно, что наша серия содержит данные, которые мы передали в нее. В данном случае мы передали список, и данные были преобразованы в объект серии. Слева мы видим наш индекс. По умолчанию Pandas будет использовать индекс с 0 до конца серии. Давайте посмотрим, как мы можем передать индекс серии:

# Creating a Pandas Series with an Index
sample_series = pd.Series(data = [33, 32, 40, 20], index=['Nik', 'Kate', 'Jane', 'Jim'])
print(sample_series)

# Returns: 
# Nik     33
# Kate    32
# Jane    40
# Jim     20
# dtype: int64

В приведенном выше примере мы создали серию Pandas с помощью:

  1. Вызов конструктора Series

  2. Передача аргумента data, который позволяет нам передать список данных

  3. Передача аргумента index, который позволяет передавать список индексов

Мы видим, что это совершенно отличается от создания обычного списка в Python. Мы видим, что каждый элемент в нашем серии теперь доступен не только по его местоположению (похожему на список в Python), но и по его именованному индексу. Например, теперь мы можем получить доступ к возрасту человека, просто указав имя, предоставленное в индексе.

# Accessing a Pandas series item
print(sample_series['Nik'])

# Returns: 33

Важно, чтобы массивы, используемые для создания индекса и данных, были одинаковой длины. В противном случае Python выведет ошибку ValueError:

# Raising a ValueError When Creating a Series
sample_series = pd.Series(data = [33, 32, 40, 20, 33], index=['Nik', 'Kate', 'Jane', 'Jim'])

# Raises: ValueError: Length of values (5) does not match length of index (4)

Серии Pandas являются ключевым элементом структуры данных Pandas. В следующем разделе вы погрузитесь в мир датафреймов Pandas!

Что такое DataFrame Pandas?

Pandas dataframe, проще говоря, это таблица. DataFrame содержит строки и столбцы, каждое из которых имеет метку. Объект DataFrame содержит отдельные записи, каждая из которых содержит разные значения. Каждое значение в DataFrame соответствует как строке (записи), так и столбцу.

Зачем иметь две структуры данных?

В предыдущем разделе вы узнали о Series в Pandas. Мы сравнили Series в Pandas с колонкой в таблице. Аналогично, можно представить DataFrame как контейнер для объектов Series в Pandas.

Почему Pandas создал две структуры данных, когда на самом деле нам нужна табличная DataFrame?

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

Создание DataFrame Pandas

Давайте теперь посмотрим, как мы можем создать DataFrame в Pandas. В предыдущем разделе вы узнали, что можно рассматривать DataFrame как коллекцию объектов Series. Один из способов создания DataFrame - это передача словаря с данными. Каждый ключ представляет столбец нашего DataFrame, а значение ключа представляет собой список данных, относящихся к этому столбцу.

Давайте создадим небольшой DataFrame для практики:

# Creating a DataFrame from Scratch
df = pd.DataFrame({
    'Name': ['Nik', 'Kate', 'Jane', 'Evan', 'Jim', 'Moe', 'Samira'],
    'Age': [33, 32, 20, 40, 22, 50, 76]
})

print(df)

# Returns:
#      Name  Age
# 0     Nik   33
# 1    Kate   32
# 2    Jane   20
# 3    Evan   40
# 4     Jim   22
# 5     Moe   50
# 6  Samira   76

Отличная работа! Вы только что создали свою первую Pandas DataFrame. Здесь мы видим, что создали новый Pandas DataFrame, используя словарь.

Использование методов Pandas для отображения данных

Теперь, когда вы создали свой первый DataFrame, давайте рассмотрим несколько способов использования Pandas для отображения данных. В последующих уроках вы узнаете значительно больше о выборе данных в Pandas, а пока давайте начнем с того, как можно просмотреть первые или последние несколько строк нашего набора данных.

Мы можем использовать метод .head() из библиотеки Pandas для доступа к первым пяти записям DataFrame. Давайте посмотрим, как это выглядит:

# Returning the first five records of a Pandas DataFrame
print(df.head())

# Returns:
#      Name  Age
# 0     Nik   33
# 1    Kate   32
# 2    Jane   20
# 3    Evan   40
# 4     Jim   22

Метод head позволяет нам вставить другой аргумент для количества возвращаемых записей. По умолчанию он вернет первые пять. Однако, если мы хотим вернуть только две записи, мы можем передать значение 2 в метод:

# Returning the first two records of a Pandas DataFrame
print(df.head(2))

# Returns:
#      Name  Age
# 0     Nik   33
# 1    Kate   32

Аналогично, мы можем вернуть последние записи датафрейма, используя метод .tail(). Подобно методу .head(), метод .tail() вернет последние пять записей. Передача другого целого значения изменит это поведение. Давайте посмотрим, как мы можем вернуть последние три записи:

# Returning the last three records of a Pandas DataFrame
print(df.tail(3))

# Returns:
#      Name  Age
# 4     Jim   22
# 5     Moe   50
# 6  Samira   76

В следующем разделе вы узнаете, как создать Pandas DataFrame из файла.

Импортируйте фрейм данных Pandas из файла

Создание DataFrame с нуля может быть трудоемким процессом, и, вероятно, у вас уже есть файлы, которые вы хотите преобразовать в DataFrame Pandas. Поэтому в этом разделе вы узнаете, как это сделать!

Один из самых распространенных форматов файлов, с которыми вы столкнетесь, это .csv файл. Эти файлы содержат данные, хранящиеся в виде текста, как показано ниже:

date,gender,region,sales
8/22/2022,Male,North-West,20381
3/5/2022,Male,North-East,14495
2/9/2022,Male,North-East,13510
6/22/2022,Male,North-East,15983

Вы можете видеть, что первые пять строк наших примерных .csv файлов действительно являются текстом. CSV расшифровывается как значения, разделенные запятыми — что логично, поскольку наши значения действительно разделены запятыми. Хотя запятая не является обязательным разделителем данных, это общепринятое соглашение. Первая строка представляет заголовки столбцов, а следующие строки — это наши данные.

Работа с файлами .csv в DataFrame с использованием Pandas очень проста! Библиотека предоставляет одноимённую функцию .read_csv(), которая позволяет загружать файл .csv в DataFrame. Первый аргумент функции — путь к файлу, который может быть относительным, абсолютным или даже URL. В данном случае мы загрузим DataFrame из файла, размещённого на GitHub.

Загрузим файл .csv в DataFrame:

# Loading a csv file into a Pandas DataFrame
df = pd.read_csv('https://raw.githubusercontent.com/datagy/data/main/sales.csv')
print(df.head())

# Returns:
#         date  gender      region  sales
# 0  8/22/2022    Male  North-West  20381
# 1   3/5/2022    Male  North-East  14495
# 2   2/9/2022    Male  North-East  13510
# 3  6/22/2022    Male  North-East  15983
# 4  8/10/2022  Female  North-West  15007

Хотя функция .read_csv() принимает множество различных параметров, самым важным, конечно же, является путь к файлу.

Вместо этого читаете файл Excel?

Pandas имеет специальную функцию для чтения файлов Excel, как в формате .xls, так и .xlsx! Эта функция называется .read_excel(). В других разделах этого курса вы узнаете разные способы чтения данных.

Упражнения

Теперь, когда у вас есть датафрейм из интернета, давайте посмотрим, как мы можем немного его изучить! Попробуйте запустить следующие примеры кода и попытаться выяснить, что они делают. Решения предоставлены под переключателями.

len(df) Длина вашего DataFrame, измеренная в количестве строк.
# Importing pandas
import pandas as pd

# Loading a csv file into a Pandas DataFrame
df = pd.read_csv('https://raw.githubusercontent.com/datagy/data/main/sales.csv')

print(len(df))

# Return:
# 1000

Заключение

В этом уроке вы с головой окунулись в удивительный мир Pandas. Pandas позволяет вам исследовать табличные данные из множества различных источников, используя Python! Краткое резюме того, что вы узнали:

  • Pandas не является частью стандартной библиотеки Python и может быть установлен с помощью pip или conda

  • Пакет Pandas обычно импортируется с псевдонимом pd

  • Pandas имеет две структуры данных: аналог Series для колонок и аналог DataFrame для таблиц

  • Вы можете читать файлы .csv, используя функцию pd.read_csv(), и файлы Excel, используя функцию pd.read_excel()

Чтобы узнать больше о структуре Pandas DataFrame, ознакомьтесь с официальной документацией здесь.

В следующем разделе вы узнаете еще больше способов исследования данных с помощью Pandas.

Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь со статьями ниже:

  • Pandas: получите номер строки из фрейма данных

  • Pandas: количество столбцов (подсчет столбцов фрейма данных)

  • Фрейм данных Pandas в файл CSV – экспорт с использованием .to_csv()

Last updated