# Basic syntax:
df = df.sample(frac=1, random_state=1).reset_index(drop=True)
# Where:
# - frac=1 specifies returning 100% of the original rows of the
# dataframe (in random order). Change to a decimal (e.g. 0.5) if
# you want to sample say, 50% of the original rows
# - random_state=1 sets the seed for the random number generator and
# is useful to specify if you want results to be reproducible
# - .reset_index(drop=True) specifies resetting the row index of the
# shuffled dataframe