我有一个 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 分层函数,但我不知道这是否是一个好的选择。或者,有没有办法创建一个循环来完成此任务?感谢您的帮助。
这里有一张图来说明我想要完成的任务
最佳答案
这个怎么样:
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/