首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python / Pandas /纸浆优化副本

Python / Pandas /纸浆优化副本
EN

Stack Overflow用户
提问于 2018-06-26 04:57:41
回答 1查看 311关注 0票数 0

我试图用有限的空间优化试验成员的分组/选择,但遇到了一些麻烦。我已经为优化准备好了pandas数据帧,并且可以毫无问题地运行线性优化,除了我需要添加的一个约束。我正在尝试使用二进制从一个大的列表中进行选择(但我不会因为任何原因而与之绑定,所以如果有不同的方法可以解决这个问题,我可以切换)。我需要最大限度地减少组合试验时间,以便在下一轮试验中选择,但由于实验的性质,一些受试者已经运行了多个试验。我想选择基于最小化时间的最佳主题组合,但允许某些主题多次出现在列表中以进行优化(因此我不必事先手动删除它们)。例如:

代码语言:javascript
复制
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?耽误您时间,实在对不起!

EN

回答 1

Stack Overflow用户

发布于 2018-06-26 07:27:27

如果需要记录所有要删除的值,可以使用duplicated函数,如下所示

代码语言:javascript
复制
# 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51031669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档