Write a Python program to shuffle all the elements in a given series

When working with Pandas Series, you might need to shuffle the elements to randomize their order. Python provides multiple approaches to shuffle a series: using random.shuffle() directly or implementing a manual shuffle algorithm.

Using random.shuffle()

The simplest approach is to use Python's built-in random.shuffle() method, which shuffles the series elements in-place ?

import pandas as pd
import random as rand

data = pd.Series([1, 2, 3, 4, 5])
print("The original series is:")
print(data)

rand.shuffle(data)
print("\nThe shuffled series is:")
print(data)
The original series is:
0    1
1    2
2    3
3    4
4    5
dtype: int64

The shuffled series is:
0    2
1    3
2    1
3    5
4    4
dtype: int64

Using Manual Shuffle Algorithm

You can also implement the Fisher-Yates shuffle algorithm manually by swapping elements with random positions ?

import pandas as pd
import random

data = pd.Series([1, 2, 3, 4, 5])
print("The original series is:")
print(data)

# Manual shuffle using Fisher-Yates algorithm
for i in range(len(data) - 1, 0, -1):
    j = random.randint(0, i)
    data[i], data[j] = data[j], data[i]

print("\nThe shuffled series is:")
print(data)
The original series is:
0    1
1    2
2    3
3    4
4    5
dtype: int64

The shuffled series is:
0    2
1    1
2    3
3    5
4    4
dtype: int64

Using sample() for Non-Destructive Shuffle

If you want to create a shuffled copy without modifying the original series, use sample() ?

import pandas as pd

data = pd.Series([1, 2, 3, 4, 5])
print("The original series is:")
print(data)

# Create shuffled copy without modifying original
shuffled_data = data.sample(frac=1).reset_index(drop=True)
print("\nThe shuffled series is:")
print(shuffled_data)

print("\nOriginal series remains unchanged:")
print(data)
The original series is:
0    1
1    2
2    3
3    4
4    5
dtype: int64

The shuffled series is:
0    3
1    1
2    5
3    2
4    4
dtype: int64

Original series remains unchanged:
0    1
1    2
2    3
3    4
4    5
dtype: int64

Comparison

Method Modifies Original? Best For
random.shuffle() Yes Simple in-place shuffling
Manual algorithm Yes Understanding shuffle logic
sample(frac=1) No Preserving original data

Conclusion

Use random.shuffle() for simple in-place shuffling or sample(frac=1) to create a shuffled copy. The manual approach helps understand the underlying Fisher-Yates algorithm.

Updated on: 2026-03-25T16:19:08+05:30

324 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements