【问题标题】:How to randomly select rows from a data set using pandas?如何使用熊猫从数据集中随机选择行?
【发布时间】:2017-08-21 02:48:54
【问题描述】:

我有一个包含 36k 行的数据集。我想使用 pandas 从中随机选择 9k 行。我该如何完成这项任务?

【问题讨论】:

  • 我是堆栈溢出的新手。我会做。我点击了向上箭头。我希望你收到了赞成票:-)
  • 谢谢.. 你做得对 ;-)
  • 真是个骗子:stackoverflow.com/questions/15923826/… 见最后一个答案

标签: pandas scikit-learn data-science


【解决方案1】:

我认为你可以使用 sample - 9k25% 行:

df.sample(n=9000)

或者:

df.sample(frac=0.25)

另一种解决方案是通过numpy.random.choice 创建index 的随机样本,然后通过loc 选择 - index 必须是唯一的:

df = df.loc[np.random.choice(df.index, size=9000)]

如果不是唯一索引的解决方案:

df = df.iloc[np.random.choice(np.arange(len(df)), size=9000)]

【讨论】:

  • 如何得到补码?
【解决方案2】:

numpy

i = np.random.permutation(np.arange(len(df)))
idx = i[:9000]
pd.DataFrame(df.values[idx], df.index[idx])

【讨论】:

    猜你喜欢
    • 2016-06-04
    • 1970-01-01
    • 2023-01-14
    • 2017-04-28
    • 2020-12-09
    • 1970-01-01
    • 2015-04-17
    • 2018-09-19
    • 2022-01-21
    相关资源
    最近更新 更多