maxframe.dataframe.Series.sample#
- Series.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, always_multinomial=False)#
从对象的轴中返回随机样本。
你可以使用 random_state 来保证结果可重现。
- 参数:
n (int, optional) -- 从轴中返回的项数。不能与 frac 同时使用。如果 frac 为 None,则默认值为 1。
frac (float, optional) -- 要返回的轴项的比例。不能与 n 同时使用。
replace (bool, default False) -- 允许或禁止对同一行进行多次采样。
weights (str or ndarray-like, optional) -- 默认值 'None' 表示等概率加权。如果传入一个 Series,则会根据索引与目标对象对齐。权重中在采样对象中找不到的索引值将被忽略,采样对象中不在权重中的索引值将被赋予零权重。如果在 DataFrame 上调用,并且 axis = 0,则接受列名。除非权重是 Series,否则权重必须与被采样的轴长度相同。如果权重总和不为 1,将被归一化为总和为 1。权重列中的缺失值将被视为零。不允许无穷值。
random_state (int, array-like, BitGenerator, np.random.RandomState, optional) -- 如果为 int、array-like 或 BitGenerator(NumPy>=1.17),则为随机数生成器的种子。如果为 np.random.RandomState,则作为 numpy RandomState 对象使用。
axis ({0 or ‘index’, 1 or ‘columns’, None}, default None) -- 要采样的轴。接受轴编号或名称。默认为给定数据类型的统计轴(对于 Series 和 DataFrames 为 0)。
always_multinomial (bool, default False) -- 如果为 True,则始终将数据块之间的样本计数分布视为多项分布。当数据量很大时,这将加速采样过程,但在实例数量不是很大时可能会影响样本的随机性。
- 返回:
一个与调用者类型相同的新对象,其中包含从调用者对象中随机采样的 n 个项。
- 返回类型:
参见
DataFrameGroupBy.sample从 DataFrame 对象的每个组中生成随机样本。
SeriesGroupBy.sample从 Series 对象的每个组中生成随机样本。
numpy.random.choice从给定的一维 numpy 数组中生成随机样本。
备注
如果 frac > 1,则应将 replacement 设置为 True。
示例
>>> import maxframe.dataframe as md >>> df = md.DataFrame({'num_legs': [2, 4, 8, 0], ... 'num_wings': [2, 0, 0, 0], ... 'num_specimen_seen': [10, 2, 1, 8]}, ... index=['falcon', 'dog', 'spider', 'fish']) >>> df.execute() num_legs num_wings num_specimen_seen falcon 2 2 10 dog 4 0 2 spider 8 0 1 fish 0 0 8
从
Seriesdf['num_legs']中提取 3 个随机元素:注意我们使用 random_state 来确保示例的可重现性。>>> df['num_legs'].sample(n=3, random_state=1).execute() fish 0 spider 8 falcon 2 Name: num_legs, dtype: int64
带有放回的
DataFrame的随机 50% 样本:>>> df.sample(frac=0.5, replace=True, random_state=1).execute() num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8
带有放回的
DataFrame的上采样样本:请注意,当 frac 参数大于 1 时,replace 参数必须为 True。>>> df.sample(frac=2, replace=True, random_state=1).execute() num_legs num_wings num_specimen_seen dog 4 0 2 fish 0 0 8 falcon 2 2 10 falcon 2 2 10 fish 0 0 8 dog 4 0 2 fish 0 0 8 dog 4 0 2
使用 DataFrame 列作为权重。在 num_specimen_seen 列中值较大的行更有可能被采样。
>>> df.sample(n=2, weights='num_specimen_seen', random_state=1).execute() num_legs num_wings num_specimen_seen falcon 2 2 10 fish 0 0 8