Pandas — это библиотека на языке программирования Python, предназначенная для анализа данных и работы с табличными данными. Она особенно удобна для выполнения различных операций с данными: фильтрации, группировки, агрегации и других.
Основные структуры данных в Pandas
Основные структуры данных в Pandas — это DataFrame и Series. Они позволяют обрабатывать данные эффективно и интуитивно понятно.
Series
Series — это одномерный массив данных, который может содержать любой тип данных (целые числа, строки, числа с плавающей точкой, объекты Python и т. д.). Каждому элементу в Series соответствует метка, которая называется индексом. По умолчанию, если индекс не задан явно, он автоматически создается как последовательность целых чисел 0, 1, 2, ... и до n-1, где n — количество элементов в Series.
Основные операции с Series:
- Выборка данных по их индексу или с использованием срезов (slices).
- Фильтрация данных с помощью булевых выражений.
- Агрегация с использованием функций sum(), mean(), max() и других.
DataFrame
DataFrame — это двумерная структура данных, похожая на таблицу в SQL или на лист в Excel. DataFrame поддерживает столбцы различных типов данных, что очень удобно для задач по обработке данных, включая статистический анализ, очистку данных, а также их визуализацию.
Основные операции с DataFrame:
- Выборка данных в столбцах по именам или строки по индексу.
- Фильтрация и преобразование данных.
- Группировка с помощью метода groupby() по одному или нескольким столбцам.
- Слияние подобно тому, как это происходит в SQL.
- Изменение структуры таблицы, добавление и удаление столбцов, изменение индексации и многое другое.
Пример использования Pandas
Рассмотрим простой пример, который демонстрирует эти операции. Допустим, в базе данных собраны данные людей из разных городов, разного возраста. Вот что можно делать с этими данными с помощью Pandas.
Просмотр данных
- df.head(n). Позволяет просмотреть первые n строк DataFrame. По умолчанию n равно 5, но можно указать любое число для просмотра.
- df.tail(n). Аналогично методу head, но показывает последние n строк. Это полезно для быстрой проверки того, какие данные добавлены в конец DataFrame.
Выборка данных
- Выбор столбца по имени: df['Column_Name'] возвращает Series, содержащий данные указанного столбца.
- Выбор нескольких столбцов: df[['Column_Name1', 'Column_Name2']] вернет новый DataFrame только с указанными столбцами.
- Выбор строки по индексу: df.iloc[index] используется для получения строки по числовому индексу. Например, df.iloc[0] вернет первую строку DataFrame как Series.
- Выбор по метке: df.loc[label] позволяет выбрать строку по метке индекса. Если индекс представляет собой дату, можно использовать df.loc['2021-01-01'].
Фильтрация
- Условная фильтрация: df[df['Age'] > 25] вернет новый DataFrame, содержащий только те строки, где значение в столбце Age больше 25. Можно комбинировать условия, используя операторы & (и) и | (или).
Группировка и агрегация
- df.groupby('Column_Name'). Этот метод используется для группировки данных по одному или нескольким столбцам. Например, df.groupby('City') создает объект GroupBy, который можно использовать для применения агрегирующих функций.
- Агрегирующие функции. После группировки можно применять функции, такие как mean(), sum(), max(), min() и т. д. Например, df.groupby('City').mean() вычислит средние значения для каждой группы.
Сохранение данных
- df.to_csv('filename.csv'). Этот метод сохраняет DataFrame в файл формата CSV. Можно указать дополнительные параметры, например index=False, чтобы не включать индекс в файл.
- Другие форматы. DataFrame также можно сохранить в другом формате, например Excel (df.to_excel('filename.xlsx')), JSON (df.to_json('filename.json')), SQL (df.to_sql('table_name', connection_object)) и многих других.
В нашем примере, создав DataFrame, можно отфильтровать данные, выделив только людей младше 25 лет, затем сгруппировать эти данные и сохранить.
import pandas as pd
# Создание DataFrame
data = {
'Name': ['John', 'Anna', 'James', 'Linda'],
'Age': [28, 22, 35, 32],
'City': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)
# Просмотр данных
print(df.head())
# Выборка данных
print(df['Age']) # Возвращает столбец Age
# Фильтрация
print(df[df['Age'] > 25])
# Группировка и агрегация
print(df.groupby('City').mean())
# Сохранение данных
df.to_csv('output.csv', index=False)
Заключение
Pandas — это прекрасный инструмент для работы с данными, который используется в Data Science, финансовом анализе, исследовании и других областях. Благодаря широкому набору функций можно легко обрабатывать, анализировать и визуализировать данные в удобной форме.