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

Библиотека Pandas является мощным инструментом для анализа и манипуляции данными в Python. Она предоставляет высокоуровневые структуры данных и функции, которые делают работу с данными удобной и эффективной. Основные структуры данных в Pandas — это Series и DataFrame.

Установка и импорт

Если Pandas не установлен, его можно установить с помощью pip:

pip install pandas

Импортируйте Pandas в ваш код:

import pandas as pd

Основные структуры данных

Series

Series — это одномерный массив, аналогичный столбцу в таблице данных.

Пример создания Series:

import pandas as pd

# Создание Series из списка
s = pd.Series([1, 2, 3, 4, 5])

# Создание Series из словаря
data = {'a': 1, 'b': 2, 'c': 3}
s = pd.Series(data)

print(s)

DataFrame

DataFrame — это двумерная таблица данных с метками строк и столбцов, аналогичная таблице в базе данных или листу в Excel.

Пример создания DataFrame:

import pandas as pd

# Создание DataFrame из словаря
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)

print(df)

Чтение и запись данных

Pandas поддерживает работу с различными форматами данных, включая CSV, Excel, SQL и JSON.

Чтение данных из CSV:

df = pd.read_csv('data.csv')

Запись данных в CSV:

df.to_csv('output.csv', index=False)

Чтение данных из Excel:

df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

Запись данных в Excel:

df.to_excel('output.xlsx', sheet_name='Sheet1', index=False)

Манипуляция данными

Просмотр данных

  • df.head(): Показать первые 5 строк

  • df.tail(): Показать последние 5 строк

  • df.info(): Показать информацию о DataFrame

  • df.describe(): Показать статистическое резюме числовых столбцов

Индексация и выбор данных

Выбор столбцов:

# Выбор одного столбца
df['Name']

# Выбор нескольких столбцов
df[['Name', 'City']]

Выбор строк по индексу:

# Выбор строки по индексу
df.iloc[0]  # Первая строка

# Выбор строки по метке
df.loc[0]  # Первая строка

Фильтрация данных:

# Фильтрация по условию
df[df['Age'] > 30]

Изменение данных

Добавление нового столбца:

df['Country'] = ['USA', 'USA', 'USA']

Изменение значений:

df.loc[df['Name'] == 'Alice', 'Age'] = 26

Удаление столбца:

df.drop('Country', axis=1, inplace=True)

Удаление строки:

df.drop(0, axis=0, inplace=True)

Агрегация и группировка

Группировка данных:

grouped = df.groupby('City')

Применение агрегирующих функций:

# Средний возраст по городам
mean_age = grouped['Age'].mean()

Применение пользовательских функций:

def custom_func(x):
    return x.max() - x.min()

result = grouped['Age'].agg(custom_func)

Слияние и объединение данных

Объединение данных по ключу (merge):

df1 = pd.DataFrame({'Key': ['A', 'B', 'C'], 'Value': [1, 2, 3]})
df2 = pd.DataFrame({'Key': ['A', 'B', 'D'], 'Value': [4, 5, 6]})

merged_df = pd.merge(df1, df2, on='Key', how='inner')  # Можно использовать 'outer', 'left', 'right'

Объединение данных по вертикали и горизонтали:

# Вертикальное объединение
df_concat = pd.concat([df1, df2], axis=0)

# Горизонтальное объединение
df_concat = pd.concat([df1, df2], axis=1)

Работа с пропущенными данными

Проверка на пропущенные значения:

df.isnull().sum()

Удаление пропущенных значений:

df.dropna(inplace=True)

Заполнение пропущенных значений:

df.fillna(value='Unknown', inplace=True)

Работа с временными данными

Преобразование в datetime:

df['Date'] = pd.to_datetime(df['Date'])

Установка индекса по дате:

df.set_index('Date', inplace=True)

Работа с временными диапазонами:

df['2021-01-01':'2021-12-31']

Заключение

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

Last updated