
Problem –
You have a pandas dataframe and you want to shuffle the rows of the dataframe.
Solution –
There are various ways to shuffle the dataframe in pandas. Let’s see them one by one.
import pandas as pd
import numpy as np
url = "https://raw.githubusercontent.com/bprasad26/lwd/master/data/clothing_store_sales.csv"
df = pd.read_csv(url)
df = df.head(10)

Method 1 –
The easiest way to do that is to use the df.sample() method in pandas to select all the rows without replacement.
df1 = df.sample(frac=1)

Method 2 –
You can also shuffle the rows of the dataframe by first shuffling the index using np.random.permutation and then use that shuffled index to select the data from the dataframe.
df2 = df.iloc[np.random.permutation(len(df))]

Method 3 –
Another way to shuffle the rows of a dataframe is using scikit-learn.
from sklearn.utils import shuffle
df3 = shuffle(df)
