Pandas中的sample()函数可以从数据集中随机抽取行或列,可以用于数据集的随机采样、创建数据集的随机子集、模型评估等场景。下面我们来详细介绍一下sample()函数的用法。
首先,sample()函数有以下几个参数:
- n: 抽取的行数或列数。
- frac: 抽取的行数或列数相对于数据集的比例,范围在0到1之间。
- replace: 是否允许重复抽取,默认为False。
- weights: 可以为每个行或列设置权重,以便更有可能抽取它们。
- random_state: 随机数种子,以确保每次抽样结果的一致性。
下面是一些常见的用法示例:
import pandas as pd
# 读取数据集
df = pd.read_csv('data.csv')
# 从数据集中随机抽取10行
sample_df = df.sample(n=10)
# 从数据集中随机抽取20%的行
sample_df = df.sample(frac=0.2)
# 允许重复抽取
sample_df = df.sample(n=10, replace=True)
# 为每个行设置不同的权重,以便更有可能抽取它们
weights = [0.1, 0.2, 0.3, 0.4]
sample_df = df.sample(n=10, weights=weights)
# 设置随机数种子,以确保每次抽样结果的一致性
sample_df = df.sample(n=10, random_state=42)
在这个例子中,我们首先使用pd.read_csv()函数读取一个名为data.csv的数据集。
然后,我们使用sample()函数从数据集中随机抽取一些行或列,并将结果存储在sample_df变量中。
在第一个例子中,我们抽取了10行数据;
在第二个例子中,我们抽取了20%的行;
在第三个例子中,我们允许重复抽取;
在第四个例子中,我们为每个行设置了不同的权重;
在第五个例子中,我们设置了随机数种子,以确保每次抽样结果的一致性。
值得注意的是,sample()函数可以用于Series和DataFrame对象。如果要对DataFrame进行抽样,可以通过指定axis参数来指定抽取行或列。例如,要从DataFrame中随机抽取3列,可以这样做:
sample_df = df.sample(n=3, axis=1)
在这个例子中,我们设置了axis=1,表示我们要从DataFrame的列中进行抽样。最后,我们从DataFrame中抽取了3列数据,并将结果存储在sample_df变量中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Pandas随机抽样(sample)使用方法 - Python技术站