You can use the following basic syntax to randomly sample rows from a pandas DataFrame:

#randomly select one row df.sample() #randomly selectnrows df.sample(n=5) #randomly selectnrows with repeats allowed df.sample(n=5, replace=True) #randomly select a fraction of the total rows df.sample(frac=0.3) #randomly selectnrows by group df.groupby('team', group_keys=False).apply(lambda x: x.sample(2))

The following examples show how to use this syntax in practice with the following pandas DataFrame:

import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], 'points': [25, 12, 15, 14, 19, 23, 25, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df team points assists rebounds 0 A 25 5 11 1 A 12 7 8 2 A 15 7 10 3 A 14 9 6 4 B 19 12 6 5 B 23 9 5 6 B 25 9 9 7 B 29 4 12

**Example 1: Randomly Select One Row**

The following code shows how to randomly select one row from the DataFrame:

#randomly select one row df.sample() team points assists rebounds 5 B 23 9 5

**Example 2: Randomly Select ***n* Rows

*n*Rows

The following code shows how to randomly select *n* rows from the DataFrame:

#randomly selectnrows df.sample(n=5) team points assists rebounds 5 B 23 9 5 2 A 15 7 10 4 B 19 12 6 6 B 25 9 9 1 A 12 7 8

**Example 3: Randomly Select ***n* Rows with Repeats Allowed

*n*Rows with Repeats Allowed

The following code shows how to randomly select *n* rows from the DataFrame, with repeat rows allowed:

#randomly select 5 rows with repeats allowed df.sample(n=5, replace=True) team points assists rebounds 6 B 25 9 9 7 B 29 4 12 5 B 23 9 5 1 A 12 7 8 5 B 23 9 5

**Example 4: Randomly Select A Fraction of the Total Rows**

The following code shows how to randomly select a fraction of the total rows from the DataFrame

#randomly select 25% of rows df.sample(frac=0.25) team points assists rebounds 2 A 15 7 10 1 A 12 7 8

**Example 5: Randomly Select ***n* Rows by Group

*n*Rows by Group

The following code shows how to randomly select *n* rows by group from the DataFrame

#randomly select 2 rows from each team df.groupby('team', group_keys=False).apply(lambda x: x.sample(2)) team points assists rebounds 0 A 25 5 11 2 A 15 7 10 7 B 29 4 12 4 B 19 12 6

Notice that 2 rows from team ‘A’ and 2 rows from team ‘B’ were randomly sampled.

**Note**: You can find the complete documentation for the pandas **sample()** function here.

**Additional Resources**

The following tutorials explain how to perform other common sampling methods in Pandas:

How to Perform Stratified Sampling in Pandas

How to Perform Cluster Sampling in Pandas

How to Perform Stratified Sampling in Pandas