You can use the sample method*:
In [11]: df = pd.DataFrame([[1, 2], [3, 4], [5, 6], [7, 8]], columns=["A", "B"])
In [12]: df.sample(2)
Out[12]:
A B
0 1 2
2 5 6
In [13]: df.sample(2)
Out[13]:
A B
3 7 8
0 1 2
*On one of the section DataFrames.
Note: If you have a larger sample size that the size of the DataFrame this will raise an error unless you sample with replacement.
In [14]: df.sample(5)
ValueError: Cannot take a larger sample than population when 'replace=False'
In [15]: df.sample(5, replace=True)
Out[15]:
A B
0 1 2
1 3 4
2 5 6
3 7 8
1 3 4
Answer from Andy Hayden on Stack OverflowPandas
pandas.pydata.org › docs › reference › api › pandas.DataFrame.sample.html
pandas.DataFrame.sample — pandas 3.0.5 documentation
Generates random samples from each group of a DataFrame object.
Top answer 1 of 5
74
You can use the sample method*:
In [11]: df = pd.DataFrame([[1, 2], [3, 4], [5, 6], [7, 8]], columns=["A", "B"])
In [12]: df.sample(2)
Out[12]:
A B
0 1 2
2 5 6
In [13]: df.sample(2)
Out[13]:
A B
3 7 8
0 1 2
*On one of the section DataFrames.
Note: If you have a larger sample size that the size of the DataFrame this will raise an error unless you sample with replacement.
In [14]: df.sample(5)
ValueError: Cannot take a larger sample than population when 'replace=False'
In [15]: df.sample(5, replace=True)
Out[15]:
A B
0 1 2
1 3 4
2 5 6
3 7 8
1 3 4
2 of 5
12
One solution is to use the choice function from numpy.
Say you want 50 entries out of 100, you can use:
import numpy as np
chosen_idx = np.random.choice(1000, replace=False, size=50)
df_trimmed = df.iloc[chosen_idx]
This is of course not considering your block structure. If you want a 50 item sample from block i for example, you can do:
import numpy as np
block_start_idx = 1000 * i
chosen_idx = np.random.choice(1000, replace=False, size=50)
df_trimmed_from_block_i = df.iloc[block_start_idx + chosen_idx]
16:13
Select Random Rows or Columns in Pandas with sample() – Quick ...
03:04
How to use Pandas to Randomly Select Rows from DataFrame - YouTube
03:55
Randomly sampling a Pandas dataframe - YouTube
06:20
Getting a random sample from your pandas data frame - YouTube
05:08
Pandas Sample | pd.DataFrame.sample() - YouTube
09:45
21. Pandas Sampling DataFrame - random rows selection and grouping ...
GeeksforGeeks
geeksforgeeks.org › python › python-pandas-dataframe-sample
Pandas Dataframe.sample() | Python - GeeksforGeeks
July 11, 2025 - In this example, we generate a random sample consisting of 25% of the entire DataFrame by using the frac parameter. ... import pandas as pd d = pd.read_csv("employees.csv") # Sample 25% of the data sr = d.sample(frac=0.25) # Verify the number of rows print(f"Original rows: {len(d)}") print(f"Sampled rows (25%): {len(sr)}") # Display the result sr
Pandas
pandas.pydata.org › pandas-docs › stable › reference › api › pandas.DataFrame.sample.html
pandas.DataFrame.sample — pandas 3.0.4 documentation
Generates random samples from each group of a DataFrame object.
W3Schools
w3schools.com › python › pandas › ref_df_sample.asp
Pandas DataFrame sample() Method
import pandas as pd df = pd.read_csv('data.csv') print(df.sample()) Try it Yourself » · The sample() method returns a specified number of random rows. The sample() method returns 1 row if a number is not specified.
ProjectPro
projectpro.io › recipes › randomly-sample-pandas-dataframe
How to randomly sample a Pandas DataFrame? -
June 2, 2022 - We have created a dictionary of data and passed it in pd.DataFrame to make a dataframe with columns 'first_name', 'last_name', 'age', 'Comedy_Score' and 'Rating_Score'. raw_data = {'first_name': ['Sheldon', 'Raj', 'Leonard', 'Howard', 'Amy'], 'last_name': ['Copper', 'Koothrappali', 'Hofstadter', 'Wolowitz', 'Fowler'], 'age': [42, 38, 36, 41, 35], 'Comedy_Score': [9, 7, 8, 8, 5], 'Rating_Score': [25, 25, 49, 62, 70]} df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'Comedy_Score', 'Rating_Score']) print(df) We can select random subsets of rows by df.take and passing random permutation of number from the length of df. We have done this twice for 2 and 4 samples to select.
pandas
pandas.pydata.org › pandas-docs › dev › reference › api › pandas.DataFrame.sample.html
pandas.DataFrame.sample — pandas 3.1.0.dev0+974.ge652ee88a5 documentation
Generates random samples from each group of a DataFrame object.
Softhints
softhints.com › pandas-random-sample-of-a-subset-of-a-dataframe-rows-or-columns
Pandas - Random Sample of a subset of a DataFrame - rows or columns - Softhints
February 10, 2022 - col = 'color' for typ in list(df[col].dropna().unique()): print(typ, end=' - ') display(df[df[col] == typ].sample(3)) ... Color - 2867 Color .. 4345 Color .. 764 Color .. Black and White - 286 Black and White .. 3904 Black and White .. 1595 Black and White .. ... In case of more values in the column and if you like to get only one random row per kind from this DataFrame - you can use the code below:
Pandas
pandas.pydata.org › docs › dev › reference › api › pandas.DataFrame.sample.html
pandas.DataFrame.sample — pandas documentation
Generates random samples from each group of a DataFrame object.
Ryan Nolan Data
ryanandmattdatascience.com › home › python pandas › pandas sample
Pandas sample(): Random Sampling Made Simple in Python
June 15, 2025 - Learn how to use pandas sample() to randomly select rows from a DataFrame. Includes examples for sampling with/without replacement and setting random state.
Pandas
pandas.pydata.org › pandas-docs › version › 1.5 › reference › api › pandas.DataFrame.sample.html
pandas.DataFrame.sample — pandas 1.5.3 documentation
Generates random samples from each group of a DataFrame object.
Programiz
programiz.com › python-programming › pandas › methods › sample
Pandas sample()
The sample() method in Pandas is used to randomly select a specified number of rows from a DataFrame.