Часто возникает ситуация, когда данные в 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.
Добавить комментарий