我试图用有限的空间优化试验成员的分组/选择,但遇到了一些麻烦。我已经为优化准备好了pandas数据帧,并且可以毫无问题地运行线性优化,除了我需要添加的一个约束。我正在尝试使用二进制从一个大的列表中进行选择(但我不会因为任何原因而与之绑定,所以如果有不同的方法可以解决这个问题,我可以切换)。我需要最大限度地减少组合试验时间,以便在下一轮试验中选择,但由于实验的性质,一些受试者已经运行了多个试验。我想选择基于最小化时间的最佳主题组合,但允许某些主题多次出现在列表中以进行优化(因此我不必事先手动删除它们)。例如:
Name Trial ID Time (ms) Selected?
Mary Smith A 11001 33 1
John Doe A 11002 24 0
James Smith B 11003 52 0
Stacey Doe A 11004 21 1
John Doe B 11002 19 1
有没有办法允许2个John Doe条目进行优化,但将输出限制为只选择一个John Doe?耽误您时间,实在对不起!
发布于 2018-06-26 07:27:27
如果需要记录所有要删除的值,可以使用duplicated
函数,如下所示
# First sort your dataframe
df.sort_values(['Name', 'Time (ms)'], inplace=True)
# Make a new column of duplicated values based only on name
df['duplicated'] = df.duplicated(subset=['Name'])
# You can then access the duplicates, but still have a log of the rejects
df.query('not duplicated')
# Name Trial ID Time (ms) Selected? duplicated
# 2 James Smith B 11003 52 0 False
# 1 John Doe A 11002 24 0 False
# 0 Mary Smith A 11001 33 1 False
# 3 Stacey Doe A 11004 21 1 False
df.query('duplicated')
# Name Trial ID Time (ms) Selected? duplicated
# 4 John Doe B 11002 19 1 True
https://stackoverflow.com/questions/51031669
复制相似问题