pydfs-lineup-optimizer
pydfs-lineup-optimizer copied to clipboard
Import Own Projections
How do you import your own projections (will need to import them several times for updated projections) into the Opto for NBA/MLB? I have a CSV file that I would like to use, is this possible?
i just vlookup from my projections into whatever sites your using FPPG column. make sure there are no blanks though, put 0 for any N/A
@rickenrocker24 The load_players method allows you to create a list of Player objects and then add them to the optimizer. There is no requirement that you use a site-supplied CSV file.
import pandas as pd
from pydfs_lineup_optimizer import get_optimizer, Site, Sport, Player
def row_to_player(row):
"""Converts dataframe row to Player object
Args:
row (namedtuple): dataframe row
Returns:
Player
"""
valid_kwargs = (
'is_injured', 'max_exposure', 'min_exposure',
'projected_ownership', 'game_info', 'roster_order',
'min_deviation', 'max_deviation', 'is_confirmed_starter',
'fppg_floor', 'fppg_ceil'
)
kwargs = {field: getattr(row, field) for field in row._fields
if field in valid_kwargs}
return Player (
player_id=row.player,
first_name=self._first_name(row.player),
last_name=self._last_name(row.player),
positions=[row.pos],
team=row.team,
salary=row.salary,
fppg=row.proj,
**kwargs
)
o = get_optimizer(site=Site.DRAFTKINGS, sport=Sport.FOOTBALL)
df = pd.read_csv('my_projections.csv')
players = df.apply(row_to_player, axis=1)
o.load_players(players)
i just vlookup from my projections into whatever sites your using FPPG column. make sure there are no blanks though, put 0 for any N/A
How would I go by just updating the FPPG column from another spreadsheet? I hate excel btw lol
@rickenrocker24 The load_players method allows you to create a list of Player objects and then add them to the optimizer. There is no requirement that you use a site-supplied CSV file.
import pandas as pd from pydfs_lineup_optimizer import get_optimizer, Site, Sport, Player def row_to_player(row): """Converts dataframe row to Player object Args: row (namedtuple): dataframe row Returns: Player """ valid_kwargs = ( 'is_injured', 'max_exposure', 'min_exposure', 'projected_ownership', 'game_info', 'roster_order', 'min_deviation', 'max_deviation', 'is_confirmed_starter', 'fppg_floor', 'fppg_ceil' ) kwargs = {field: getattr(row, field) for field in row._fields if field in valid_kwargs} return Player ( player_id=row.player, first_name=self._first_name(row.player), last_name=self._last_name(row.player), positions=[row.pos], team=row.team, salary=row.salary, fppg=row.proj, **kwargs ) o = get_optimizer(site=Site.DRAFTKINGS, sport=Sport.FOOTBALL) df = pd.read_csv('my_projections.csv') players = df.apply(row_to_player, axis=1) o.load_players(players)
I'll give this a try...thanks for providing the script.
@ rickenrocker24 Метод load_players позволяет вам создать список объектов Player, а затем добавить их в оптимизатор. Использование CSV-файла, предоставленного сайтом, не является обязательным.
import pandas as pd from pydfs_lineup_optimizer import get_optimizer, Site, Sport, Player def row_to_player(row): """Converts dataframe row to Player object Args: row (namedtuple): dataframe row Returns: Player """ valid_kwargs = ( 'is_injured', 'max_exposure', 'min_exposure', 'projected_ownership', 'game_info', 'roster_order', 'min_deviation', 'max_deviation', 'is_confirmed_starter', 'fppg_floor', 'fppg_ceil' ) kwargs = {field: getattr(row, field) for field in row._fields if field in valid_kwargs} return Player ( player_id=row.player, first_name=self._first_name(row.player), last_name=self._last_name(row.player), positions=[row.pos], team=row.team, salary=row.salary, fppg=row.proj, **kwargs ) o = get_optimizer(site=Site.DRAFTKINGS, sport=Sport.FOOTBALL) df = pd.read_csv('my_projections.csv') players = df.apply(row_to_player, axis=1) o.load_players(players)
Я попробую ... спасибо за предоставленный сценарий.
did it work?
@ rickenrocker24 Метод load_players позволяет вам создать список объектов Player, а затем добавить их в оптимизатор. Использование CSV-файла, предоставленного сайтом, не является обязательным.
import pandas as pd from pydfs_lineup_optimizer import get_optimizer, Site, Sport, Player def row_to_player(row): """Converts dataframe row to Player object Args: row (namedtuple): dataframe row Returns: Player """ valid_kwargs = ( 'is_injured', 'max_exposure', 'min_exposure', 'projected_ownership', 'game_info', 'roster_order', 'min_deviation', 'max_deviation', 'is_confirmed_starter', 'fppg_floor', 'fppg_ceil' ) kwargs = {field: getattr(row, field) for field in row._fields if field in valid_kwargs} return Player ( player_id=row.player, first_name=self._first_name(row.player), last_name=self._last_name(row.player), positions=[row.pos], team=row.team, salary=row.salary, fppg=row.proj, **kwargs ) o = get_optimizer(site=Site.DRAFTKINGS, sport=Sport.FOOTBALL) df = pd.read_csv('my_projections.csv') players = df.apply(row_to_player, axis=1) o.load_players(players)
Я попробую ... спасибо за предоставленный сценарий.
did it work?
I haven't got it to work yet but if you find out let me know
You could also read in your projections and merge it with the salary csv in Pandas. Then create a data frame with the required columns. Example for FD below.
`salaries= pd.read_csv('FanDuel-MLB-2022 ET-04 ET-15 ET-74601-players-list.csv') fproj = pd.read_csv('MLB_2022-04-15_players.csv') data = pd.merge(sh, fc, left_on=['Nickname', 'Team'], right_on=['Player', 'Team'], how='inner') data['FPPG'] = (data['Proj']) data = data[['Id', 'Position', 'First Name', 'Nickname', 'Last Name', 'FPPG', 'Played', 'Salary', 'Game', 'Team', 'Opponent', 'Injury Indicator', 'Injury Details', 'Tier', 'Roster Position', 'Projected Ownership', 'Projection Ceil']]
data.to_csv('my_projections.csv')`
Then you can load it into the optimizer via CSV.