繁体   English   中英

Python / Pandas /纸浆优化重复项

[英]Python / Pandas / Pulp Optimization Duplicates

我正在尝试在有限的空间内优化对试验成员的分组/选择,并且遇到了一些麻烦。 我已经准备好进行优化的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条目进行优化,但是将输出限制为只选择其中一个? 谢谢你的时间!

如果您需要记录要删除的所有值,则可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM