Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -235,83 +235,35 @@ with tab2:
|
|
235 |
|
236 |
for flex in flex_file['Position'].unique():
|
237 |
sub_idx = flex_file[flex_file['Position'] != "Var"].index
|
238 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) ==
|
239 |
|
240 |
for flex in flex_file['Position'].unique():
|
241 |
-
sub_idx = flex_file[flex_file['Position'].str.contains("
|
242 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) ==
|
243 |
|
244 |
for flex in flex_file['Position'].unique():
|
245 |
sub_idx = flex_file[flex_file['Position'] == "C"].index
|
246 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 1
|
247 |
-
|
248 |
-
for flex in flex_file['Position'].unique():
|
249 |
-
sub_idx = flex_file[flex_file['Position'] == "1B"].index
|
250 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 1
|
251 |
-
|
252 |
-
for flex in flex_file['Position'].unique():
|
253 |
-
sub_idx = flex_file[flex_file['Position'] == "2B"].index
|
254 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 1
|
255 |
-
|
256 |
-
for flex in flex_file['Position'].unique():
|
257 |
-
sub_idx = flex_file[flex_file['Position'] == "3B"].index
|
258 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 1
|
259 |
-
|
260 |
-
for flex in flex_file['Position'].unique():
|
261 |
-
sub_idx = flex_file[flex_file['Position'] == "SS"].index
|
262 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 1
|
263 |
-
|
264 |
-
for flex in flex_file['Position'].unique():
|
265 |
-
sub_idx = flex_file[flex_file['Position'] == "OF"].index
|
266 |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 3
|
267 |
|
268 |
for flex in flex_file['Position'].unique():
|
269 |
-
sub_idx = flex_file[flex_file['Position'].str.contains("
|
270 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx])
|
271 |
-
|
272 |
-
for flex in flex_file['Position'].unique():
|
273 |
-
sub_idx = flex_file[flex_file['Position'].str.contains("1B")].index
|
274 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 1
|
275 |
-
|
276 |
-
for flex in flex_file['Position'].unique():
|
277 |
-
sub_idx = flex_file[flex_file['Position'].str.contains("2B")].index
|
278 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 1
|
279 |
|
280 |
for flex in flex_file['Position'].unique():
|
281 |
-
sub_idx = flex_file[flex_file['Position']
|
282 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx])
|
283 |
|
284 |
for flex in flex_file['Position'].unique():
|
285 |
-
sub_idx = flex_file[flex_file['Position']
|
286 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >=
|
287 |
|
288 |
for flex in flex_file['Position'].unique():
|
289 |
-
sub_idx = flex_file[flex_file['Position'].str.contains("
|
290 |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 3
|
291 |
|
292 |
for flex in flex_file['Position'].unique():
|
293 |
-
sub_idx = flex_file[
|
294 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx])
|
295 |
-
|
296 |
-
for flex in flex_file['Position'].unique():
|
297 |
-
sub_idx = flex_file[(flex_file['Position'] == "SS") | (flex_file['Position'] == "2B")| (flex_file['Position'] == "2B/SS")].index
|
298 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 2
|
299 |
-
|
300 |
-
for flex in flex_file['Position'].unique():
|
301 |
-
sub_idx = flex_file[(flex_file['Position'] == "2B") | (flex_file['Position'] == "3B")| (flex_file['Position'] == "2B/3B")].index
|
302 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 2
|
303 |
-
|
304 |
-
for flex in flex_file['Position'].unique():
|
305 |
-
sub_idx = flex_file[(flex_file['Position'] == "1B") | (flex_file['Position'] == "3B")| (flex_file['Position'] == "1B/3B")].index
|
306 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 2
|
307 |
-
|
308 |
-
for flex in flex_file['Position'].unique():
|
309 |
-
sub_idx = flex_file[(flex_file['Position'] == "1B") | (flex_file['Position'] == "C")| (flex_file['Position'] == "1B/C")].index
|
310 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 2
|
311 |
-
|
312 |
-
for flex in flex_file['Position'].unique():
|
313 |
-
sub_idx = flex_file[(flex_file['Position'] == "SS") | (flex_file['Position'] == "OF")| (flex_file['Position'] == "SS/OF")].index
|
314 |
-
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 4
|
315 |
|
316 |
elif site_var1 == 'Fanduel':
|
317 |
|
@@ -445,117 +397,117 @@ with tab2:
|
|
445 |
del lineup_final[lineup_final.columns[1]]
|
446 |
lineup_final = lineup_final.reset_index(drop=True)
|
447 |
|
448 |
-
if site_var1 == 'Draftkings':
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
|
504 |
-
elif site_var1 == 'Fanduel':
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
|
560 |
lineup_test = lineup_final
|
561 |
lineup_final = lineup_final.T
|
@@ -587,7 +539,7 @@ with tab2:
|
|
587 |
x += 1
|
588 |
|
589 |
if site_var1 == 'Draftkings':
|
590 |
-
portfolio.rename(columns={0: "
|
591 |
elif site_var1 == 'Fanduel':
|
592 |
portfolio.rename(columns={0: "QB", 1: "RB1", 2: "RB2", 3: "WR1", 4: "WR2", 5: "WR3", 6: "TE", 7: "UTIL", 8: "DST"}, inplace = True)
|
593 |
portfolio = portfolio.dropna()
|
@@ -597,31 +549,31 @@ with tab2:
|
|
597 |
portfolio = portfolio.set_index('Lineup')
|
598 |
portfolio = portfolio.drop(columns=['index'])
|
599 |
|
600 |
-
final_outcomes = portfolio[['
|
601 |
-
final_outcomes = final_outcomes.set_axis(['
|
602 |
final_outcomes_export = pd.DataFrame()
|
603 |
-
final_outcomes_export['
|
604 |
-
final_outcomes_export['
|
605 |
-
final_outcomes_export['
|
606 |
-
final_outcomes_export['
|
607 |
-
final_outcomes_export['
|
608 |
-
final_outcomes_export['
|
609 |
-
final_outcomes_export['
|
610 |
final_outcomes_export['UTIL'] = final_outcomes['UTIL']
|
611 |
-
final_outcomes_export['
|
612 |
final_outcomes_export['Salary'] = final_outcomes['Cost']
|
613 |
final_outcomes_export['Own'] = final_outcomes['Own']
|
614 |
final_outcomes_export['Proj'] = final_outcomes['Proj']
|
615 |
if site_var1 == 'Draftkings':
|
616 |
-
final_outcomes_export['
|
617 |
-
final_outcomes_export['
|
618 |
-
final_outcomes_export['
|
619 |
-
final_outcomes_export['
|
620 |
-
final_outcomes_export['
|
621 |
-
final_outcomes_export['
|
622 |
-
final_outcomes_export['
|
623 |
final_outcomes_export['UTIL'].replace(dkid_dict, inplace=True)
|
624 |
-
final_outcomes_export['
|
625 |
elif site_var1 == 'Fanduel':
|
626 |
final_outcomes_export['QB'].replace(fdid_dict, inplace=True)
|
627 |
final_outcomes_export['RB1'].replace(fdid_dict, inplace=True)
|
|
|
235 |
|
236 |
for flex in flex_file['Position'].unique():
|
237 |
sub_idx = flex_file[flex_file['Position'] != "Var"].index
|
238 |
+
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) == 9
|
239 |
|
240 |
for flex in flex_file['Position'].unique():
|
241 |
+
sub_idx = flex_file[flex_file['Position'].str.contains("G")].index
|
242 |
+
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) == 1
|
243 |
|
244 |
for flex in flex_file['Position'].unique():
|
245 |
sub_idx = flex_file[flex_file['Position'] == "C"].index
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 3
|
247 |
|
248 |
for flex in flex_file['Position'].unique():
|
249 |
+
sub_idx = flex_file[flex_file['Position'].str.contains("W")].index
|
250 |
+
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
|
252 |
for flex in flex_file['Position'].unique():
|
253 |
+
sub_idx = flex_file[flex_file['Position'] == "D"].index
|
254 |
+
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) <= 3
|
255 |
|
256 |
for flex in flex_file['Position'].unique():
|
257 |
+
sub_idx = flex_file[flex_file['Position'] == "C"].index
|
258 |
+
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 2
|
259 |
|
260 |
for flex in flex_file['Position'].unique():
|
261 |
+
sub_idx = flex_file[flex_file['Position'].str.contains("W")].index
|
262 |
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 3
|
263 |
|
264 |
for flex in flex_file['Position'].unique():
|
265 |
+
sub_idx = flex_file[flex_file['Position'] == "D"].index
|
266 |
+
total_score += pulp.lpSum([player_vars[idx] for idx in sub_idx]) >= 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
|
268 |
elif site_var1 == 'Fanduel':
|
269 |
|
|
|
397 |
del lineup_final[lineup_final.columns[1]]
|
398 |
lineup_final = lineup_final.reset_index(drop=True)
|
399 |
|
400 |
+
# if site_var1 == 'Draftkings':
|
401 |
+
# line_hold = lineup_final[['Names']]
|
402 |
+
# line_hold['pos'] = line_hold['Names'].map(player_pos)
|
403 |
+
|
404 |
+
# for pname in range(0,len(line_hold)):
|
405 |
+
# if line_hold.iat[pname,1] == 'QB':
|
406 |
+
# if line_hold.iat[pname,0] not in p_used:
|
407 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
408 |
+
# p_used.extend(sorted_lineup)
|
409 |
+
# rbvar = 0
|
410 |
+
# for pname in range(0,len(line_hold)):
|
411 |
+
# if rbvar == 2:
|
412 |
+
# pname = len(line_hold)
|
413 |
+
# elif rbvar < 2:
|
414 |
+
# if line_hold.iat[pname,1] == 'RB':
|
415 |
+
# if line_hold.iat[pname,0] not in p_used:
|
416 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
417 |
+
# rbvar = rbvar + 1
|
418 |
+
# p_used.extend(sorted_lineup)
|
419 |
+
# wrvar = 0
|
420 |
+
# for pname in range(0,len(line_hold)):
|
421 |
+
# if wrvar == 3:
|
422 |
+
# pname = len(line_hold)
|
423 |
+
# elif wrvar < 3:
|
424 |
+
# if line_hold.iat[pname,1] == 'WR':
|
425 |
+
# if line_hold.iat[pname,0] not in p_used:
|
426 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
427 |
+
# wrvar = wrvar + 1
|
428 |
+
# p_used.extend(sorted_lineup)
|
429 |
+
# tevar = 0
|
430 |
+
# for pname in range(0,len(line_hold)):
|
431 |
+
# if tevar == 1:
|
432 |
+
# pname = len(line_hold)
|
433 |
+
# elif tevar < 1:
|
434 |
+
# if line_hold.iat[pname,1] == 'TE':
|
435 |
+
# if line_hold.iat[pname,0] not in p_used:
|
436 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
437 |
+
# tevar = tevar + 1
|
438 |
+
# p_used.extend(sorted_lineup)
|
439 |
|
440 |
+
# for pname in range(0,len(line_hold)):
|
441 |
+
# if line_hold.iat[pname,1] != 'DST':
|
442 |
+
# if line_hold.iat[pname,0] not in p_used:
|
443 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
444 |
+
# p_used.extend(sorted_lineup)
|
445 |
|
446 |
+
# for pname in range(0,len(line_hold)):
|
447 |
+
# if line_hold.iat[pname,1] == 'DST':
|
448 |
+
# if line_hold.iat[pname,0] not in p_used:
|
449 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
450 |
+
# p_used.extend(sorted_lineup)
|
451 |
|
452 |
+
# lineup_final['sorted'] = sorted_lineup
|
453 |
+
# lineup_final = lineup_final.drop(columns=['Names'])
|
454 |
+
# lineup_final.rename(columns={"sorted": "Names"}, inplace = True)
|
455 |
|
456 |
+
# elif site_var1 == 'Fanduel':
|
457 |
+
# line_hold = lineup_final[['Names']]
|
458 |
+
# line_hold['pos'] = line_hold['Names'].map(player_pos)
|
459 |
+
|
460 |
+
# for pname in range(0,len(line_hold)):
|
461 |
+
# if line_hold.iat[pname,1] == 'QB':
|
462 |
+
# if line_hold.iat[pname,0] not in p_used:
|
463 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
464 |
+
# p_used.extend(sorted_lineup)
|
465 |
+
# rbvar = 0
|
466 |
+
# for pname in range(0,len(line_hold)):
|
467 |
+
# if rbvar == 2:
|
468 |
+
# pname = len(line_hold)
|
469 |
+
# elif rbvar < 2:
|
470 |
+
# if line_hold.iat[pname,1] == 'RB':
|
471 |
+
# if line_hold.iat[pname,0] not in p_used:
|
472 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
473 |
+
# rbvar = rbvar + 1
|
474 |
+
# p_used.extend(sorted_lineup)
|
475 |
+
# wrvar = 0
|
476 |
+
# for pname in range(0,len(line_hold)):
|
477 |
+
# if wrvar == 3:
|
478 |
+
# pname = len(line_hold)
|
479 |
+
# elif wrvar < 3:
|
480 |
+
# if line_hold.iat[pname,1] == 'WR':
|
481 |
+
# if line_hold.iat[pname,0] not in p_used:
|
482 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
483 |
+
# wrvar = wrvar + 1
|
484 |
+
# p_used.extend(sorted_lineup)
|
485 |
+
# tevar = 0
|
486 |
+
# for pname in range(0,len(line_hold)):
|
487 |
+
# if tevar == 1:
|
488 |
+
# pname = len(line_hold)
|
489 |
+
# elif tevar < 1:
|
490 |
+
# if line_hold.iat[pname,1] == 'TE':
|
491 |
+
# if line_hold.iat[pname,0] not in p_used:
|
492 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
493 |
+
# tevar = tevar + 1
|
494 |
+
# p_used.extend(sorted_lineup)
|
495 |
|
496 |
+
# for pname in range(0,len(line_hold)):
|
497 |
+
# if line_hold.iat[pname,1] != 'DST':
|
498 |
+
# if line_hold.iat[pname,0] not in p_used:
|
499 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
500 |
+
# p_used.extend(sorted_lineup)
|
501 |
|
502 |
+
# for pname in range(0,len(line_hold)):
|
503 |
+
# if line_hold.iat[pname,1] == 'DST':
|
504 |
+
# if line_hold.iat[pname,0] not in p_used:
|
505 |
+
# sorted_lineup.append(line_hold.iat[pname,0])
|
506 |
+
# p_used.extend(sorted_lineup)
|
507 |
|
508 |
+
# lineup_final['sorted'] = sorted_lineup
|
509 |
+
# lineup_final = lineup_final.drop(columns=['Names'])
|
510 |
+
# lineup_final.rename(columns={"sorted": "Names"}, inplace = True)
|
511 |
|
512 |
lineup_test = lineup_final
|
513 |
lineup_final = lineup_final.T
|
|
|
539 |
x += 1
|
540 |
|
541 |
if site_var1 == 'Draftkings':
|
542 |
+
portfolio.rename(columns={0: "C1", 1: "C2", 2: "W1", 3: "W2", 4: "WW3", 5: "D1", 6: "D2", 7: "UTIL", 8: "G"}, inplace = True)
|
543 |
elif site_var1 == 'Fanduel':
|
544 |
portfolio.rename(columns={0: "QB", 1: "RB1", 2: "RB2", 3: "WR1", 4: "WR2", 5: "WR3", 6: "TE", 7: "UTIL", 8: "DST"}, inplace = True)
|
545 |
portfolio = portfolio.dropna()
|
|
|
549 |
portfolio = portfolio.set_index('Lineup')
|
550 |
portfolio = portfolio.drop(columns=['index'])
|
551 |
|
552 |
+
final_outcomes = portfolio[['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'UTIL', 'G', 'Cost', 'Proj', 'Own']]
|
553 |
+
final_outcomes = final_outcomes.set_axis(['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'UTIL', 'G', 'Cost', 'Proj', 'Own'], axis=1)
|
554 |
final_outcomes_export = pd.DataFrame()
|
555 |
+
final_outcomes_export['C1'] = final_outcomes['C1']
|
556 |
+
final_outcomes_export['C2'] = final_outcomes['C2']
|
557 |
+
final_outcomes_export['W1'] = final_outcomes['W1']
|
558 |
+
final_outcomes_export['W2'] = final_outcomes['W2']
|
559 |
+
final_outcomes_export['W3'] = final_outcomes['W3']
|
560 |
+
final_outcomes_export['D1'] = final_outcomes['D1']
|
561 |
+
final_outcomes_export['D2'] = final_outcomes['D2']
|
562 |
final_outcomes_export['UTIL'] = final_outcomes['UTIL']
|
563 |
+
final_outcomes_export['G'] = final_outcomes['G']
|
564 |
final_outcomes_export['Salary'] = final_outcomes['Cost']
|
565 |
final_outcomes_export['Own'] = final_outcomes['Own']
|
566 |
final_outcomes_export['Proj'] = final_outcomes['Proj']
|
567 |
if site_var1 == 'Draftkings':
|
568 |
+
final_outcomes_export['C1'].replace(dkid_dict, inplace=True)
|
569 |
+
final_outcomes_export['C2'].replace(dkid_dict, inplace=True)
|
570 |
+
final_outcomes_export['W1'].replace(dkid_dict, inplace=True)
|
571 |
+
final_outcomes_export['W2'].replace(dkid_dict, inplace=True)
|
572 |
+
final_outcomes_export['W3'].replace(dkid_dict, inplace=True)
|
573 |
+
final_outcomes_export['D1'].replace(dkid_dict, inplace=True)
|
574 |
+
final_outcomes_export['D2'].replace(dkid_dict, inplace=True)
|
575 |
final_outcomes_export['UTIL'].replace(dkid_dict, inplace=True)
|
576 |
+
final_outcomes_export['G'].replace(dkid_dict, inplace=True)
|
577 |
elif site_var1 == 'Fanduel':
|
578 |
final_outcomes_export['QB'].replace(fdid_dict, inplace=True)
|
579 |
final_outcomes_export['RB1'].replace(fdid_dict, inplace=True)
|