python - 有没有一种方法可以根据交替元素将数据框中的排序值分配给组

标签 python pandas numpy

我有一个 Pandas DataFrame,如下所示:

COURSE  BIB#  COURSE 1  COURSE 2  STRAIGHT-GLIDING     MEAN  PRESTASJON
1          2    20.220    22.535             19.91  21.3775    1.073707
0          1    21.235    23.345             20.69  22.2900    1.077332

这是一个试点,当我们进行真正的实验时,DataFrame 可能会更长。现在我已经计算了每个 BIB# 的性能,我想根据它们的性能将它们分配到两个不同的组。因此我编写了以下代码:

df1 = df1.sort_values(by='PRESTASJON', ascending=True)

这对 DataFrame 中的值进行排序。现在我想将偶数行分配给一组,将奇数行分配给另一组。我怎样才能做到这一点?

我不知道我在寻找什么。我在 Python 中查找了 random 模块的文档,但这并不是我正在寻找的。我看到一些问题/帖子指向 scikit-learn 分层函数,但我不知道这是否是一个好的选择。或者,有没有办法创建一个循环来完成此任务?感谢您的帮助。

这里有一张图来说明我想要完成的任务

What I want to accomplish

最佳答案

这个怎么样:

threshold = 0.5
df1['group'] = df1['PRESTASJON'] > threshold

或者,如果您想要为您的群组提供值(value):

df['group'] = np.where(df['PRESTASJON'] > threshold, 'A', 'B')

在这里,'A'将被分配到列 'group'如果精度满足我们的阈值,否则 'B' .


更新:根据OP对帖子的更新,如果您想将它们分为两组:

#sort your dataframe based on precision column
df1 = df1.sort_values(by='PRESTASJON')
#create new column with default value 'A' and assign even rows (alternative rows) to 'B'
df1['group'] = 'A'
df1.iloc[1::2,-1] = 'B'

关于python - 有没有一种方法可以根据交替元素将数据框中的排序值分配给组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63290721/

相关文章:

python - 过滤具有 2 级列标题的 Pandas 数据框

Python Numpy 安装健全性检查错误

python - python中列表列表的移动平均值

python - 设置tensorflow conv2d操作的权重和偏差张量

Python,字典到 CSV : is there a faster way to do it?

用于读取文件记录的Python modbus lib

python - 有条件地将几列替换为 Pandas 中的默认值

python - 检测数据帧是否具有 MultiIndex

python - 如何在 Python 中进行简单的命令行聊天?

python - Django,Modelform不呈现