Example #1
0
def exclude_players(df):
	import pandas as pd
	import numpy as np
	import FF_scoring 
	import easygui as eg

	players = pd.unique(df.Name.ravel()) #getting a list of teams for the week 
	question = "Select players to exclude"
	title = "Select players"
	listOfOptions = players
	choice = eg.multchoicebox(question , title, listOfOptions)
	print choice
	cont = raw_input("Exclude these players (if none are showing, there are none selected)? (y/n)")
	cont = str(cont)
	if cont == 'y':
		df = df[~df.Name.isin(choice)] #removing the teams
	else:
		df = FF_scoring.exclude_players(df)
	return df
Example #2
0
def which_scores(df):
	import pandas as pd
	import numpy as np
	import FF_scoring 
	import easygui as eg

	scores = df.columns.values
	players = pd.unique(df.Name.ravel()) #getting a list of teams for the week 
	question = "Select scores to include"
	title = "Select scores"
	listOfOptions = scores
	choice = eg.multchoicebox(question , title, listOfOptions)
	print choice
	cont = raw_input("Include these scores (if none are showing, there are none selected)? (y/n)")
	cont = str(cont)
	if cont == 'y':
		score_list = list(choice) #removing the teams
	else:
		df = FF_scoring.which_scores(df)
	return score_list
Example #3
0
for i in range(0, row_num):
    # cleaning favorite from "At" and "(London)"
    f1 = df_1["player"][i].split(" ")
    f = len(f1) - 1
    f2 = f1[f]
    f3 = f1[0]
    df_1["pos"][i] = f2
    df_1["player"][i] = f3
    i += 1

df_1["Def"] = np.where(df_1["pos"] == pos, 1, 0)
df_1 = df_1[df_1.Def == 1]
df = df_1[["player", "fan_pts"]]
df.to_csv(csv_output)

df = FF_scoring.get_player(csv_output, dk_file, 75)


df = df[~df.dk_name.isin(["NaN"])]

df["fftoday"] = df["fan_pts"]
df["nfl"] = df["fan_pts"]
df["cbs"] = df["fan_pts"]
df["fleaflicker"] = df["fan_pts"]
df["espn"] = df["fan_pts"]
df["fox"] = df["fan_pts"]
df["fire"] = df["fan_pts"]
df["Name"] = df["dk_name"]

df.to_csv(csv_output_dk)
Example #4
0

if fd =='1':
	#kick_sal = 5000
	kick_sal = raw_input("Enter kicker salary:   ")
	kick_sal = int(kick_sal)
	salary = 60000-kick_sal
	data_set = "weeks/week-" +week + "/aggregate-week" +week +'fd.csv'
	excel_out = "weeks/week-" +week + "/lineups-week" + week + spec +'fd.xlsx'
else:
	data_set = "weeks/week-" +week + "/aggregate-week" +week +'dk.csv'  
	excel_out = "weeks/week-" +week + "/lineups-week" + week + spec + 'dk.xlsx'
	
#getting the data
df = pd.read_csv(data_set)
df = FF_scoring.exclude_teams(df)
df = FF_scoring.exclude_players(df)

#need a list here

#score_list = ['average'] 
score_list = FF_scoring.which_scores(df)

#print score_list


#---------
#cont = raw_input("Continue (y/n)?") # for ESPN, this is for the csv_output (auto-refreshes projections)
#cont = str(cont)
#if cont == 'n':
#	sys.exit(0)
Example #5
0
df = pd.read_csv(csv_output)

i = 0
row_num = len(df)

for i in range(0,row_num):
	f1 = df['player'][i].split(',') # split() only once
	new_player = f1[0]
	df['player'][i] = new_player
	i = i+ 1

df.to_csv(csv_output)

#-------------------------------

df_dk = FF_scoring.scoring('final',csv_output)
df_fd = FF_scoring.fd_scoring('final',csv_output)

df_dk_2 = df_dk[(df_dk['final'] > 1)]  # cleaning low scores
df_fd_2 = df_fd[(df_fd['final'] > 1)]  # cleaning low scores

df_dk_2.to_csv(csv_output_dk)
df_fd_2.to_csv(csv_output_fd)

df_dk = FF_scoring.get_player(csv_output_dk,dk_file,86)
df_fd = FF_scoring.get_player(csv_output_fd,fd_file,86)

df_dk.to_csv(csv_output_dk)
df_fd.to_csv(csv_output_fd)

Example #6
0
		cols = [ele.text.strip() for ele in cols]
		data.append([ele for ele in cols if ele])  # Get rid of empty values
	b = open(csv_output, 'w')
	a = csv.writer(b)
	a.writerows(data),
	b.close()
	page_num =page_num+1
df = pd.read_csv(csv_output)
df['rec']=0
df['punt_td']=0
df['kick_td']=0
df.to_csv(csv_output)

#--------------------------------------------------

df = FF_scoring.clean(csv_output)

df.replace('-',0, inplace=True)
df['rec']=df['rec_yards']/10  #nfl doesn't do receptions, so I assume a 10 yards/rec


i = 0
row_num = len(df)
for i in range(0,row_num):
	f1 = df['player'][i].split(' ') # split() only once
	first_name = f1[0]
	last_name = f1[1]
	new_player = first_name + " " + last_name
	df['player'][i] = new_player
	i = i+ 1
Example #7
0
def optimize_lineup_fd(score,df,mult,max_sal): 
	import pandas as pd
	import numpy as np
	import csv
	from datetime import datetime
	import FF_scoring 
	import itertools
	start_time = datetime.now()

	df_qb = FF_scoring.segment_df(df,score,['QB'])
	df_rb = FF_scoring.segment_df(df,score,['RB'])
	df_wr = FF_scoring.segment_df(df,score,['WR'])
	df_te = FF_scoring.segment_df(df,score,['TE'])
	df_dst = FF_scoring.segment_df(df,score,['D'])
	#df_flex = FF_scoring.segment_df(df,score,['RB','WR','TE'])

	df_qb = FF_scoring.optimal_players(df_qb,score,1)
	df_rb = FF_scoring.optimal_players(df_rb,score,2)
	df_wr = FF_scoring.optimal_players(df_wr,score,3)
	df_te = FF_scoring.optimal_players(df_te,score,1)
	df_dst = FF_scoring.optimal_players(df_dst,score,1)
	#df_flex = FF_scoring.optimal_players(df_flex,score,7)

	#getting three columns
	df_qb = df_qb[['Name','Salary',score]]
	df_rb = df_rb[['Name','Salary',score]]
	df_wr = df_wr[['Name','Salary',score]]
	df_te = df_te[['Name','Salary',score]]
	df_dst = df_dst[['Name','Salary',score]]
	#df_flex = df_flex[['Name','Salary',score]]

	#flattening RBs
	print datetime.now() - start_time

	#doing the combos (use 2 as parameter)
	rb_num = len(df_rb)  #i can probably get rid of this
	rb = df_rb.values.tolist() 
	tup_rb =  itertools.combinations(rb, 2)
	list_rb = map(list,tup_rb)
	df_rb = pd.DataFrame(list_rb)
	#unique to Rb/WR -- extending list
	df_rb['RB'] = df_rb[0] + df_rb[1] 
	df_rb = df_rb[['RB']]
	#flatten list
	rb = df_rb.values.tolist()
	rb = list(itertools.chain(*rb))

	# adding salaries and points
	r = len(rb)
	x=0
	for x in range(0,r):
		sal = [rb[x][1] +rb[x][4]]
		pts = [rb[x][2] +rb[x][5]]
		rb[x] = rb[x] +sal +pts
		x +=1

	#shortening list
	df_rb = pd.DataFrame(rb)
	df_rb = df_rb[[0,3,6,7]]
	df_rb.columns = ['RB1','RB2','Salary',score]

	df_rb = FF_scoring.optimal_players(df_rb,score,1)

	print datetime.now() - start_time

	#-----------------------------------------------
	#flattening WRs

	#doing the combos (use 2 as parameter)
	wr_num = len(df_wr)  #i can probably get rid of this
	wr = df_wr.values.tolist() 
	tup_wr =  itertools.combinations(wr, 3)
	list_wr = map(list,tup_wr)
	df_wr = pd.DataFrame(list_wr)
	#unique to Rb/WR -- extending list
	df_wr['WR'] = df_wr[0] + df_wr[1] + df_wr[2] 
	df_wr = df_wr[['WR']]
	#flatten list
	wr = df_wr.values.tolist()
	wr = list(itertools.chain(*wr))

	# adding salaries and points
	r = len(wr)
	x=0
	for x in range(0,r):
		sal = [wr[x][1] +wr[x][4]+wr[x][7]]
		pts = [wr[x][2] +wr[x][5]+wr[x][8]]
		wr[x] = wr[x] +sal +pts
		x +=1

	#shortening list
	df_wr = pd.DataFrame(wr)
	df_wr = df_wr[[0,3,6,9,10]]
	df_wr.columns = ['WR1','WR2','WR3','Salary',score]

	df_wr = FF_scoring.optimal_players(df_wr,score,1)

	print datetime.now() - start_time
	#--------------------------------------------------

	#getting length of file
	qb_num = len(df_qb)
	rb_num = len(df_rb)
	wr_num = len(df_wr)
	te_num = len(df_te)
	dst_num = len(df_dst)
	#flex_num = len(df_flex)

	print qb_num
	print rb_num
	print wr_num
	print te_num
	print dst_num

	#turning df into list of lists
	qb = df_qb.values.tolist() 
	rb = df_rb.values.tolist()
	wr = df_wr.values.tolist()
	te = df_te.values.tolist()
	dst = df_dst.values.tolist()
	#flex = df_flex.values.tolist()

	#these are the column headings
	lu = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]
	lu_headings = [['QB','QB_sal','QB_score','RB1','RB2','RB_sal','RB_score','WR1','WR2','WR3','WR_sal','WR_score','TE','TE_sal','TE_score','DST','DST_sal','DST_score','salary','score']]

	q = 0 #for row numbers
	r1 = 0 #first rb
	w1 = 0 #first wr
	t = 0
	d = 0
	l = 0
	#	f = 0
	max_score = 0
	max_sal = max_sal # an input for the function

	for q in range(0,qb_num):
		for r1 in range(0,rb_num):
			for w1 in range(0,wr_num):
				for t in range(0,te_num):
					for d in range(0,dst_num):
						data = [qb[q][0],qb[q][1],qb[q][2],rb[r1][0],rb[r1][1],rb[r1][2],rb[r1][3],wr[w1][0],wr[w1][1],wr[w1][2],wr[w1][3],wr[w1][4],te[t][0],te[t][1],te[t][2],dst[d][0],dst[d][1],dst[d][2],0,0]
						total_salary = data[1] + data[5] + data[10] + data[13] + data[16]
						total_score = data[2] + data[6] + data[11] + data[14] + data[17]
						data[18]=total_salary
						data[19]=total_score
						if total_score >= mult* max_score and total_salary <= max_sal:			
							lu.append(data)
							if total_score > max_score:
								max_score = total_score
						l +=1
						d +=1
					t +=1
				print l
				print datetime.now() - start_time
				w1 +=1
			r1 +=1
		q +=1

	df = pd.DataFrame(lu, columns=lu_headings[0])
	#print df

	df.sort_values(by='score', ascending=False, inplace=True)
	df = df.reset_index(drop=True) 
	df = df[['QB','RB1','RB2','WR1','WR2','WR3','TE','DST','salary','score']]
	df = df.head(250)
	df = df.transpose()
	return df