Демистификация разделения фреймов данных в Python: подробное руководство

Разделение кадров данных — фундаментальная операция анализа и обработки данных. Это позволяет нам разделить фрейм данных Pandas на несколько меньших фреймов данных на основе определенных условий или критериев. В этой статье блога мы рассмотрим различные методы разделения фрейма данных Pandas, используя разговорный язык, и предоставим примеры кода, которые помогут вам понять концепции. Итак, приступим!

Метод 1: разделение на основе одного условия
Одним из распространенных подходов является разделение кадра данных на основе одного условия. Например, предположим, что у нас есть фрейм данных под названием dfсо столбцом с именем «категория», и мы хотим разделить его на отдельные фреймы данных на основе разных категорий. Вот как это можно сделать:

# Example code
split_dataframes = {}
for category in df['category'].unique():
    split_dataframes[category] = df[df['category'] == category]

Метод 2: разделение на основе нескольких условий
Иногда вам может потребоваться разделить кадр данных на основе нескольких условий. Для этого вы можете использовать функцию locв Pandas. Предположим, у нас есть фрейм данных dfсо столбцами «возраст» и «пол», и мы хотим разделить его на отдельные фреймы данных для мужчин и женщин в возрасте до 25 лет. Вот пример:

# Example code
males_under_25 = df.loc[(df['gender'] == 'Male') & (df['age'] < 25)]
females_under_25 = df.loc[(df['gender'] == 'Female') & (df['age'] < 25)]

Метод 3: разделение на фрагменты фиксированного размера
Еще один полезный метод — разделение кадра данных на фрагменты фиксированного размера. Это может быть удобно при работе с большими наборами данных или когда вы хотите обрабатывать данные небольшими пакетами. Функция numpy.array_split()может помочь в этом. Вот пример:

# Example code
import numpy as np
chunked_dataframes = np.array_split(df, 3)  # Split df into 3 equal-sized chunks

Метод 4: разделение посредством группировки
Группирование — это мощная операция в Pandas, которая позволяет разделить фрейм данных на основе одного или нескольких столбцов и выполнять агрегатные функции для каждой группы. Для этой цели используется функция groupby(). Допустим, у нас есть фрейм данных dfсо столбцами «город» и «население», и мы хотим разделить его на отдельные фреймы данных для каждого города. Вот пример:

# Example code
grouped_dataframes = dict(list(df.groupby('city')))

Метод 5: случайное разделение
В некоторых случаях может потребоваться случайное разделение кадра данных на обучающий и тестовый наборы. Функция train_test_split()из модуля sklearn.model_selectionможет оказаться полезной. Вот пример:

# Example code
from sklearn.model_selection import train_test_split
train_df, test_df = train_test_split(df, test_size=0.2)  # Split df into 80% training and 20% testing data

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