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
>>> df.sample(frac=0.5, replace=True, random_state=1) num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8 · An upsample sample of the DataFrame with replacement: Note that replace parameter has to be True for frac parameter > 1.
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]
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
02:49
Video 19: Randomly Sample Your Data Using Pandas - YouTube
09:45
21. Pandas Sampling DataFrame - random rows selection and grouping ...
Pandas
pandas.pydata.org › pandas-docs › stable › reference › api › pandas.DataFrame.sample.html
pandas.DataFrame.sample — pandas 3.0.4 documentation
>>> df.sample(frac=0.5, replace=True, random_state=1) num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8 · An upsample sample of the DataFrame with replacement: Note that replace parameter has to be True for frac parameter > 1.
W3Schools
w3schools.com › python › pandas › ref_df_sample.asp
Pandas DataFrame sample() Method
Pandas HOME Pandas Intro Pandas Getting Started Pandas Series Pandas DataFrames Pandas Read CSV Pandas Read JSON Pandas Analyzing Data · Cleaning Data Cleaning Empty Cells Cleaning Wrong Format Cleaning Wrong Data Removing Duplicates ... Return one random sample row of the DataFrame.
Pythontic
pythontic.com › pandas › dataframe-manipulations › sample selection
Creating a random sample from a pandas DataFrame | Pythontic.com
The pandas DataFrame class provides the method sample() that returns a random sample from the DataFrame. drop-truncate · duplicates-and-missing-values · explode · head-tail · querying a dataframe · replace elements · Copyright 2026 © pythontic.com
Pandas
pandas.pydata.org › docs › dev › reference › api › pandas.DataFrame.sample.html
pandas.DataFrame.sample — pandas documentation
>>> df.sample(frac=0.5, replace=True, random_state=1) num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8 · An upsample sample of the DataFrame with replacement: Note that replace parameter has to be True for frac parameter > 1.
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
>>> df.sample(frac=0.5, replace=True, random_state=1) num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8 · An upsample sample of the DataFrame with replacement: Note that replace parameter has to be True for frac parameter > 1.
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 › stable › generated › pandas.DataFrame.sample.html
pandas.DataFrame.sample — pandas 2.2.2 documentation
The page has been moved to this page
Codegive
codegive.com › blog › pandas_random_sample.php
Pandas Random Sample: Unlock Powerful Insights & Build Robust Models (2024) with Smarter Data Selection!
At its core, it randomly selects n rows (or columns) or a fraction of the total rows (or columns) from your data. This process is crucial for creating subsets that can be used for testing, validation, or to reduce the computational load of working with very large datasets. The general syntax for DataFrame.sample() is: