python - 根据间隔选择随机行

标签 python pandas

Python Pandas 中是否有一个函数可以根据数据框中的列中的值随机选择一行(执行函数 roulette wheel selection )?

 id     value
 1      1
 2      2
 3      3

然后,有机会 1/(1+2+3) 选择第 1 行,有机会选择 2/6 第 2 行和 3/6 第 3 行。

我知道用 0 到 sum(value) 之间的随机数和 for 循环编写自己的函数很容易,然后选择该行,但我想知道是否有预定义的函数。

最佳答案

选择一个类似于以下内容的索引:

i = 选择(范围(len(df)), df.value)

其中选择是您想要从here中获得的任何内容.

然后使用 iloc .

关于python - 根据间隔选择随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256682/

相关文章:

python - 将包含分组数据的 CSV 导入到 Pandas 数据框中

python - 如何将http响应分成 block ?

python - 使用Python将多个制表符分隔的文本文件插入MySQL?

python - 在没有reset_index()的情况下从pandas DataFrame索引中删除单个列

python - 删除 pandas 数据框中所有具有混合数据类型的行,这些数据类型在多列中包含特定字符串

python - Pandas DataFrame 在 groupby 之后添加列

python - 是否有 pandas 函数来转置数据框,为现有列的每个唯一值创建一个单独的列?

python - 这是什么编码以及如何在 Python 中解码它?

python - 在 Python 中使用字典作为 switch 语句

python - 无法从另一个文件导入函数