DataFrame.sample 是 pandas 库中 DataFrame 对象的方法,用于从数据框中抽取随机样本。
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
-
n
(int或None):- 指定要抽取的样本数量。如果指定了
n
,则frac
应设置为 None。
- 指定要抽取的样本数量。如果指定了
-
frac
(float或None):- 指定要抽取的样本占原数据框的比例。可以是小数,表示抽取的比例,例如
frac=0.25
表示抽取 25% 的样本。 - 如果同时指定了
n
和frac
,将使用frac
参数。
- 指定要抽取的样本占原数据框的比例。可以是小数,表示抽取的比例,例如
-
replace
(bool,默认为False):- 控制是否允许重复抽样。如果设置为 True,则允许同一样本被抽取多次;如果设置为 False,则不允许重复抽样。
-
weights
(str或数组型,默认为None):- 指定每个样本的权重。可以是列名,指示样本权重的列,也可以是权重数组。
-
random_state
(int或RandomState实例或None,默认为None):- 控制随机抽样的随机化过程。指定一个整数可以实现可重复的随机抽样。
-
axis
({0或‘index’,1或‘columns’},默认为0):- 指定抽样的轴。如果为 0 或 'index',则在行上进行抽样;如果为 1 或 'columns',则在列上进行抽样。
应用示例:
import pandas as pd
df = pd.read_csv('label.txt', sep='\t')
# 从数据框中抽取10个样本
sampled_data = df.sample(n=10)
# 从数据框中抽取总样本的30%
sampled_data_frac = df.sample(frac=0.3)
# 从数据框中进行有放回抽样(允许重复)
sampled_with_replacement = df.sample(n=10, replace=True)
# 指定每个样本的权重进行抽样
sampled_with_weights = df.sample(n=10, weights='column_with_weights')
# 指定随机种子以实现可重复抽样
sampled_with_seed = df.sample(n=10, random_state=42)