[[-9.92, 23.04, -6.06, -0.72, 21.32],
[54.98, 15.58, 51.66, 54.1, 43.76],
[49.22, 5.68, 25.24, 31.8, 43.3],
[32.1, 15.12, 9.38, 28.96, 40.14],
[13.2, 10.36, 12.44, -12.02, 15.8]]
我有一个使用此数据结构的熊猫数据帧。我希望在数据框中找到5个值的最大和,但这些值不能在同一列或同一行中。例如,[9.92, 15.58, 25.24, 28.96, 15.8]
的值是允许的,但是[9.92, 15.58, 25.24, 28.96, 40.14]
&[9.92, 15.58, 25.24, 28.96, -12.02]
将不会
理想情况下,我希望从这个数据框架生成一个符合我标准的列表列表,然后从中找到最大值
[{'Stephen Curry': -9.92,
'Buddy Hield': 23.04,
'Duncan Robinson': -6.06,
'Damian Lillard': -0.72,
'Joe Harris': 21.32},
{'Stephen Curry': 54.98,
'Buddy Hield': 15.58,
'Duncan Robinson': 51.66,
'Damian Lillard': 54.1,
'Joe Harris': 43.76},
{'Stephen Curry': 49.22,
'Buddy Hield': 5.68,
'Duncan Robinson': 25.24,
'Damian Lillard': 31.8,
'Joe Harris': 43.3},
{'Stephen Curry': 32.1,
'Buddy Hield': 15.12,
'Duncan Robinson': 9.38,
'Damian Lillard': 28.96,
'Joe Harris': 40.14},
{'Stephen Curry': 13.2,
'Buddy Hield': 10.36,
'Duncan Robinson': 12.44,
'Damian Lillard': -12.02,
'Joe Harris': 15.8}]
这基本上就是Assignment Problem。这个特殊的实例小到足以使用暴力
结果
best_sum
=178.94best_perm
=(2,0,4,1,3)这意味着最佳解决方案是通过选择第1列的第3行、第2列的第1行、第3列的第5行、第4列的第2行和第5列的第4行
将问题推广到大量的列和行可能很难,在这种情况下,您可以尝试integer programming with PuLP
相关问题 更多 >
编程相关推荐