James McCool commited on
Commit
b42fc89
·
1 Parent(s): 67223dc

Refactor salary, median, and ownership calculations in app.py to use parsed_frame instead of session state, improving data handling consistency and clarity in exposure evaluations.

Browse files
Files changed (1) hide show
  1. app.py +80 -22
app.py CHANGED
@@ -1349,50 +1349,79 @@ with tab2:
1349
  if type_var == 'Classic':
1350
  if sport_var == 'CS2' or sport_var == 'LOL':
1351
  # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
1352
- st.session_state['working_frame']['salary'] = st.session_state['working_frame'].apply(
1353
  lambda row: st.session_state['map_dict']['cpt_salary_map'].get(row.iloc[0], 0) +
1354
  sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row.iloc[1:]),
1355
  axis=1
1356
  )
1357
 
1358
  # Calculate median (CPT uses cpt_proj_map, others use proj_map)
1359
- st.session_state['working_frame']['median'] = st.session_state['working_frame'].apply(
1360
  lambda row: st.session_state['map_dict']['cpt_proj_map'].get(row.iloc[0], 0) +
1361
  sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row.iloc[1:]),
1362
  axis=1
1363
  )
1364
 
1365
  # Calculate ownership (CPT uses cpt_own_map, others use own_map)
1366
- st.session_state['working_frame']['Own'] = st.session_state['working_frame'].apply(
1367
  lambda row: st.session_state['map_dict']['cpt_own_map'].get(row.iloc[0], 0) +
1368
  sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row.iloc[1:]),
1369
  axis=1
1370
  )
1371
 
1372
  elif sport_var != 'CS2' and sport_var != 'LOL':
1373
- st.session_state['working_frame']['salary'] = st.session_state['working_frame'].apply(lambda row: sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row), axis=1)
1374
- st.session_state['working_frame']['median'] = st.session_state['working_frame'].apply(lambda row: sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row), axis=1)
1375
- st.session_state['working_frame']['Own'] = st.session_state['working_frame'].apply(lambda row: sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row), axis=1)
1376
  if 'stack_dict' in st.session_state:
1377
- st.session_state['working_frame']['Stack'] = st.session_state['working_frame'].index.map(st.session_state['stack_dict'])
1378
- st.session_state['working_frame']['Size'] = st.session_state['working_frame'].index.map(st.session_state['size_dict'])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1379
  elif type_var == 'Showdown':
1380
  # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
1381
- st.session_state['working_frame']['salary'] = st.session_state['working_frame'].apply(
1382
  lambda row: st.session_state['map_dict']['cpt_salary_map'].get(row.iloc[0], 0) +
1383
  sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row.iloc[1:]),
1384
  axis=1
1385
  )
1386
 
1387
  # Calculate median (CPT uses cpt_proj_map, others use proj_map)
1388
- st.session_state['working_frame']['median'] = st.session_state['working_frame'].apply(
1389
  lambda row: st.session_state['map_dict']['cpt_proj_map'].get(row.iloc[0], 0) +
1390
  sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row.iloc[1:]),
1391
  axis=1
1392
  )
1393
 
1394
  # Calculate ownership (CPT uses cpt_own_map, others use own_map)
1395
- st.session_state['working_frame']['Own'] = st.session_state['working_frame'].apply(
1396
  lambda row: st.session_state['map_dict']['cpt_own_map'].get(row.iloc[0], 0) +
1397
  sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row.iloc[1:]),
1398
  axis=1
@@ -1412,50 +1441,79 @@ with tab2:
1412
  if type_var == 'Classic':
1413
  if sport_var == 'CS2' or sport_var == 'LOL':
1414
  # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
1415
- st.session_state['export_base']['salary'] = st.session_state['export_base'].apply(
1416
  lambda row: st.session_state['map_dict']['cpt_salary_map'].get(row.iloc[0], 0) +
1417
  sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row.iloc[1:]),
1418
  axis=1
1419
  )
1420
 
1421
  # Calculate median (CPT uses cpt_proj_map, others use proj_map)
1422
- st.session_state['export_base']['median'] = st.session_state['export_base'].apply(
1423
  lambda row: st.session_state['map_dict']['cpt_proj_map'].get(row.iloc[0], 0) +
1424
  sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row.iloc[1:]),
1425
  axis=1
1426
  )
1427
 
1428
  # Calculate ownership (CPT uses cpt_own_map, others use own_map)
1429
- st.session_state['export_base']['Own'] = st.session_state['export_base'].apply(
1430
  lambda row: st.session_state['map_dict']['cpt_own_map'].get(row.iloc[0], 0) +
1431
  sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row.iloc[1:]),
1432
  axis=1
1433
  )
1434
 
1435
  elif sport_var != 'CS2' and sport_var != 'LOL':
1436
- st.session_state['export_base']['salary'] = st.session_state['export_base'].apply(lambda row: sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row), axis=1)
1437
- st.session_state['export_base']['median'] = st.session_state['export_base'].apply(lambda row: sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row), axis=1)
1438
- st.session_state['export_base']['Own'] = st.session_state['export_base'].apply(lambda row: sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row), axis=1)
1439
  if 'stack_dict' in st.session_state:
1440
- st.session_state['export_base']['Stack'] = st.session_state['export_base'].index.map(st.session_state['stack_dict'])
1441
- st.session_state['export_base']['Size'] = st.session_state['export_base'].index.map(st.session_state['size_dict'])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1442
  elif type_var == 'Showdown':
1443
  # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
1444
- st.session_state['export_base']['salary'] = st.session_state['export_base'].apply(
1445
  lambda row: st.session_state['map_dict']['cpt_salary_map'].get(row.iloc[0], 0) +
1446
  sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row.iloc[1:]),
1447
  axis=1
1448
  )
1449
 
1450
  # Calculate median (CPT uses cpt_proj_map, others use proj_map)
1451
- st.session_state['export_base']['median'] = st.session_state['export_base'].apply(
1452
  lambda row: st.session_state['map_dict']['cpt_proj_map'].get(row.iloc[0], 0) +
1453
  sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row.iloc[1:]),
1454
  axis=1
1455
  )
1456
 
1457
  # Calculate ownership (CPT uses cpt_own_map, others use own_map)
1458
- st.session_state['export_base']['Own'] = st.session_state['export_base'].apply(
1459
  lambda row: st.session_state['map_dict']['cpt_own_map'].get(row.iloc[0], 0) +
1460
  sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row.iloc[1:]),
1461
  axis=1
 
1349
  if type_var == 'Classic':
1350
  if sport_var == 'CS2' or sport_var == 'LOL':
1351
  # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
1352
+ parsed_frame['salary'] = parsed_frame.apply(
1353
  lambda row: st.session_state['map_dict']['cpt_salary_map'].get(row.iloc[0], 0) +
1354
  sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row.iloc[1:]),
1355
  axis=1
1356
  )
1357
 
1358
  # Calculate median (CPT uses cpt_proj_map, others use proj_map)
1359
+ parsed_frame['median'] = parsed_frame.apply(
1360
  lambda row: st.session_state['map_dict']['cpt_proj_map'].get(row.iloc[0], 0) +
1361
  sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row.iloc[1:]),
1362
  axis=1
1363
  )
1364
 
1365
  # Calculate ownership (CPT uses cpt_own_map, others use own_map)
1366
+ parsed_frame['Own'] = parsed_frame.apply(
1367
  lambda row: st.session_state['map_dict']['cpt_own_map'].get(row.iloc[0], 0) +
1368
  sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row.iloc[1:]),
1369
  axis=1
1370
  )
1371
 
1372
  elif sport_var != 'CS2' and sport_var != 'LOL':
1373
+ parsed_frame['salary'] = parsed_frame.apply(lambda row: sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row), axis=1)
1374
+ parsed_frame['median'] = parsed_frame.apply(lambda row: sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row), axis=1)
1375
+ parsed_frame['Own'] = parsed_frame.apply(lambda row: sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row), axis=1)
1376
  if 'stack_dict' in st.session_state:
1377
+ team_dict = dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['team']))
1378
+ if sport_var == 'LOL':
1379
+ parsed_frame['Stack'] = parsed_frame.apply(
1380
+ lambda row: Counter(
1381
+ team_dict.get(player, '') for player in row
1382
+ if team_dict.get(player, '') != ''
1383
+ ).most_common(1)[0][0] if any(team_dict.get(player, '') for player in row) else '',
1384
+ axis=1
1385
+ )
1386
+ parsed_frame['Size'] = parsed_frame.apply(
1387
+ lambda row: Counter(
1388
+ team_dict.get(player, '') for player in row
1389
+ if team_dict.get(player, '') != ''
1390
+ ).most_common(1)[0][1] if any(team_dict.get(player, '') for player in row) else 0,
1391
+ axis=1
1392
+ )
1393
+ else:
1394
+ parsed_frame['Stack'] = parsed_frame.apply(
1395
+ lambda row: Counter(
1396
+ team_dict.get(player, '') for player in row[2:]
1397
+ if team_dict.get(player, '') != ''
1398
+ ).most_common(1)[0][0] if any(team_dict.get(player, '') for player in row[2:]) else '',
1399
+ axis=1
1400
+ )
1401
+ parsed_frame['Size'] = parsed_frame.apply(
1402
+ lambda row: Counter(
1403
+ team_dict.get(player, '') for player in row[2:]
1404
+ if team_dict.get(player, '') != ''
1405
+ ).most_common(1)[0][1] if any(team_dict.get(player, '') for player in row[2:]) else 0,
1406
+ axis=1
1407
+ )
1408
  elif type_var == 'Showdown':
1409
  # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
1410
+ parsed_frame['salary'] = parsed_frame.apply(
1411
  lambda row: st.session_state['map_dict']['cpt_salary_map'].get(row.iloc[0], 0) +
1412
  sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row.iloc[1:]),
1413
  axis=1
1414
  )
1415
 
1416
  # Calculate median (CPT uses cpt_proj_map, others use proj_map)
1417
+ parsed_frame['median'] = parsed_frame.apply(
1418
  lambda row: st.session_state['map_dict']['cpt_proj_map'].get(row.iloc[0], 0) +
1419
  sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row.iloc[1:]),
1420
  axis=1
1421
  )
1422
 
1423
  # Calculate ownership (CPT uses cpt_own_map, others use own_map)
1424
+ parsed_frame['Own'] = parsed_frame.apply(
1425
  lambda row: st.session_state['map_dict']['cpt_own_map'].get(row.iloc[0], 0) +
1426
  sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row.iloc[1:]),
1427
  axis=1
 
1441
  if type_var == 'Classic':
1442
  if sport_var == 'CS2' or sport_var == 'LOL':
1443
  # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
1444
+ parsed_frame['salary'] = parsed_frame.apply(
1445
  lambda row: st.session_state['map_dict']['cpt_salary_map'].get(row.iloc[0], 0) +
1446
  sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row.iloc[1:]),
1447
  axis=1
1448
  )
1449
 
1450
  # Calculate median (CPT uses cpt_proj_map, others use proj_map)
1451
+ parsed_frame['median'] = parsed_frame.apply(
1452
  lambda row: st.session_state['map_dict']['cpt_proj_map'].get(row.iloc[0], 0) +
1453
  sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row.iloc[1:]),
1454
  axis=1
1455
  )
1456
 
1457
  # Calculate ownership (CPT uses cpt_own_map, others use own_map)
1458
+ parsed_frame['Own'] = parsed_frame.apply(
1459
  lambda row: st.session_state['map_dict']['cpt_own_map'].get(row.iloc[0], 0) +
1460
  sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row.iloc[1:]),
1461
  axis=1
1462
  )
1463
 
1464
  elif sport_var != 'CS2' and sport_var != 'LOL':
1465
+ parsed_frame['salary'] = parsed_frame.apply(lambda row: sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row), axis=1)
1466
+ parsed_frame['median'] = parsed_frame.apply(lambda row: sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row), axis=1)
1467
+ parsed_frame['Own'] = parsed_frame.apply(lambda row: sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row), axis=1)
1468
  if 'stack_dict' in st.session_state:
1469
+ team_dict = dict(zip(st.session_state['projections_df']['player_names'], st.session_state['projections_df']['team']))
1470
+ if sport_var == 'LOL':
1471
+ parsed_frame['Stack'] = parsed_frame.apply(
1472
+ lambda row: Counter(
1473
+ team_dict.get(player, '') for player in row
1474
+ if team_dict.get(player, '') != ''
1475
+ ).most_common(1)[0][0] if any(team_dict.get(player, '') for player in row) else '',
1476
+ axis=1
1477
+ )
1478
+ parsed_frame['Size'] = parsed_frame.apply(
1479
+ lambda row: Counter(
1480
+ team_dict.get(player, '') for player in row
1481
+ if team_dict.get(player, '') != ''
1482
+ ).most_common(1)[0][1] if any(team_dict.get(player, '') for player in row) else 0,
1483
+ axis=1
1484
+ )
1485
+ else:
1486
+ parsed_frame['Stack'] = parsed_frame.apply(
1487
+ lambda row: Counter(
1488
+ team_dict.get(player, '') for player in row[2:]
1489
+ if team_dict.get(player, '') != ''
1490
+ ).most_common(1)[0][0] if any(team_dict.get(player, '') for player in row[2:]) else '',
1491
+ axis=1
1492
+ )
1493
+ parsed_frame['Size'] = parsed_frame.apply(
1494
+ lambda row: Counter(
1495
+ team_dict.get(player, '') for player in row[2:]
1496
+ if team_dict.get(player, '') != ''
1497
+ ).most_common(1)[0][1] if any(team_dict.get(player, '') for player in row[2:]) else 0,
1498
+ axis=1
1499
+ )
1500
  elif type_var == 'Showdown':
1501
  # Calculate salary (CPT uses cpt_salary_map, others use salary_map)
1502
+ parsed_frame['salary'] = parsed_frame.apply(
1503
  lambda row: st.session_state['map_dict']['cpt_salary_map'].get(row.iloc[0], 0) +
1504
  sum(st.session_state['map_dict']['salary_map'].get(player, 0) for player in row.iloc[1:]),
1505
  axis=1
1506
  )
1507
 
1508
  # Calculate median (CPT uses cpt_proj_map, others use proj_map)
1509
+ parsed_frame['median'] = parsed_frame.apply(
1510
  lambda row: st.session_state['map_dict']['cpt_proj_map'].get(row.iloc[0], 0) +
1511
  sum(st.session_state['map_dict']['proj_map'].get(player, 0) for player in row.iloc[1:]),
1512
  axis=1
1513
  )
1514
 
1515
  # Calculate ownership (CPT uses cpt_own_map, others use own_map)
1516
+ parsed_frame['Own'] = parsed_frame.apply(
1517
  lambda row: st.session_state['map_dict']['cpt_own_map'].get(row.iloc[0], 0) +
1518
  sum(st.session_state['map_dict']['own_map'].get(player, 0) for player in row.iloc[1:]),
1519
  axis=1