如何按步长20从DataFrame的指定列中随机选取5行?
解决方案
核心思路
要满足「5行目标列数值步长为20」的要求,本质是要选取一组等差为20的5个连续整数(形如x, x+20, x+40, x+60, x+80),且最大数不超过100,因此起始值x只能在1-20之间。我们先随机生成这个起始值,再筛选对应行即可。
代码实现(基于Pandas)
假设你的数据集已加载到dataset变量中,目标列名为target_col(替换为实际列名):
import pandas as pd import numpy as np # 1. 随机生成符合要求的起始值(1到20之间的整数) start_val = np.random.randint(1, 21) # 2. 生成步长为20的数值序列 selected_values = [start_val + 20 * i for i in range(5)] # 3. 从数据集中筛选出目标列包含这些数值的行 selected_rows = dataset[dataset['target_col'].isin(selected_values)] # 可选:如果需要打乱选中行的顺序 selected_rows = selected_rows.sample(frac=1).reset_index(drop=True)
为什么之前的方法不生效
dataset.sample(n=5)是纯随机选行,无法约束目标列数值的步长规则;range/np.arange仅能生成固定序列,没有结合「随机起始值」和「数据集筛选」的逻辑,因此无法匹配需求。
内容的提问来源于stack exchange,提问作者Kathie K
相关产品推荐
相关产品推荐

