Pandas的sample()方法用于从DataFrame中随机选择行和列。如果我们想要从大量数据集构建模型,我们必须随机选择数据的较小样本,可以通过sample函数完成。

语法

DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)  

参数

  • n: 这是一个可选参数,包含整数值,定义生成的随机行数。
  • frac: 这也是一个可选参数,包含浮点值,返回浮点值 * 数据框值的长度。不能与参数n一起使用。
  • replace: 它包含布尔值。如果为true,则返回一个带有替换的样本。replace的默认值为false。
  • weights: 这也是一个可选参数,包含str或ndarray-like。默认值为“None”,导致等概率权重。 如果传递了Series;它将与目标对象在索引上对齐。在权重中找不到的索引值将被忽略,并且在权重中找不到的样本对象中的索引值将被赋予零权重。 如果通过axis = 0传递了DataFrame;它将接受列的名称。 如果权重是Series;则权重必须与被采样的轴的长度相同。 如果权重不等于1;它将被归一化为1的总和。 权重列中的缺失值被视为零。 权重列中不允许有无限大的值。
  • random_state: 这也是一个可选参数,包含整数或numpy.random.RandomState。如果值为int,则为随机数生成器提供种子,或numpy RandomState对象。
  • axis: 这也是一个可选参数,包含整数或字符串值。0或'row'和1或'column'。

返回

它返回与调用者相同类型的新对象,其中包含从调用者对象中随机抽取的n个项。

示例1

import pandas as pd  
info = pd.DataFrame({'data1': [2, 4, 8, 0],  
'data2': [2, 0, 0, 0],  
'data3': [10, 2, 1, 8]},  
index=['John', 'Parker', 'Smith', 'William'])  
info  
info['data1'].sample(n=3, random_state=1)  
info.sample(frac=0.5, replace=True, random_state=1)  
info.sample(n=2, weights='data3', random_state=1)  

输出

       data1    data2    data3
John     2         2         10
William     0         0         8

示例2

在这个例子中,我们从csv文件中提取DataFrame,并使用sample从DataFrame中提取随机行。

名为aa的csv文件包含以下数据集:

微信截图_20240227142722.png

让我们编写一个代码,从上述数据集中提取随机行:

# importing pandas package   
import pandas as pd   
# define data frame from csv file    
data = pd.read_csv("aa.csv")   
 # randomly select one row    
row1 = data.sample(n = 1)     
# display row  
row1  
# randomly select another row   
row2 = data.sample(n = 2)   
# display  row  
row2  

输出

          Name         Hire Date    Salary      Leaves Remaining
2     Parker Chapman    02/21/14     45000.0      10
5     Michael Palin     06/28/13     66000.0      8

标签: Pandas, Pandas教程, Pandas库, Pandas基础, Pandas学习, Pandas使用, Pandas指南, Pandas入门教程, Pandas模块, Pandas数据库, Pandas实战教程, Pandas用法总结, Pandas文档