Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
10 Май 2023
2 мин
763

Перемешивание строк DataFrame в Python

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

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

Пример исходного DataFrame:

| | Product | Category |
|—|———|———-|
| 0 | Apple | Fruit |
| 1 | Banana | Fruit |
| 2 | Pear | Fruit |
| 3 | Tomato | Vegetable|
| 4 | Cucumber| Vegetable|
| 5 | Potato | Vegetable|

Для перемешивания строк DataFrame в Python можно воспользоваться функцией sample из библиотеки pandas. Эта функция возвращает случайную выборку из переданного ей DataFrame. Для получения перемешанного DataFrame достаточно передать в эту функцию исходный DataFrame и указать размер выборки равным количеству строк в исходном DataFrame.

import pandas as pd

# Создание исходного DataFrame
df = pd.DataFrame({
    'Product': ['Apple', 'Banana', 'Pear', 'Tomato', 'Cucumber', 'Potato'],
    'Category': ['Fruit', 'Fruit', 'Fruit', 'Vegetable', 'Vegetable', 'Vegetable']
})

# Перемешивание строк DataFrame
df = df.sample(frac=1)

print(df)

На выходе будет получен DataFrame с перемешанными строками:

| | Product | Category |
|—|———|———-|
| 4 | Cucumber| Vegetable|
| 2 | Pear | Fruit |
| 1 | Banana | Fruit |
| 3 | Tomato | Vegetable|
| 0 | Apple | Fruit |
| 5 | Potato | Vegetable|

Важно отметить, что индексы строк после перемешивания сохраняются. Если требуется сбросить индексы и присвоить новые, это можно сделать с помощью функции reset_index:

df = df.sample(frac=1).reset_index(drop=True)

Таким образом, перемешивание строк DataFrame в Python — это простая и быстрая операция, которую можно выполнить с помощью встроенных функций библиотеки pandas.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий