def check_cnr_nncat_p123(p_result_list, c_p_cat): #1) create 1 dictionary to count cnr vs nncat #2) determine cnr from result list #3) determine nncat from result list #4) populate #5) i24 = 0.1984, i12 = 0.2314, i6 = 3.7037, i4 = 2.7777, i1 = 100 return_p_dict = {} # create a dict to count cnr vs nncat n_cat_value = {"i24":0.1984, "i12":0.2314, "i6":3.7037, "i4":2.7777, "i1":100} for i in range(10): for each in ["i24", "i12", "i6", "i4", "i1"]: key = str(i) + each return_p_dict[key] = 0 # ['439516', '4030', '4304', '7899'], ['439616', '8414', '8575', '8339'], p_counter = 0 # use for looping the p_result_list while p_counter < (len(p_result_list) - 1): cnr = str(p_result_list[p_counter][c_p_cat][0]) next_num = (p_result_list[p_counter + 1][1:]) for each in next_num: next_num_cat = check_num_cat(each) nn_cat_key = "i" + str(next_num_cat) #nn_cat_key_value = n_cat_value[nn_cat_key] key = cnr + nn_cat_key if key in return_p_dict: return_p_dict[key] += 1 p_counter += 1 return return_p_dict
def check_cnr_nncat_single_p_cat(p_result_list): #1) create 1 dictionary to count cnr vs nncat #2) determine cnr from result list #3) determine nncat from result list #4) populate #5) i24 = 0.1984, i12 = 0.2314, i6 = 3.7037, i4 = 2.7777, i1 = 100 return_p_dict = {} # create a dict to count cnr vs nncat n_cat_value = {"i24":0.1984, "i12":0.2314, "i6":3.7037, "i4":2.7777, "i1":100} for i in range(10): for each in ["i24", "i12", "i6", "i4", "i1"]: key = str(i) + each return_p_dict[key] = 0 p_counter = 0 # use for looping the p_result_list while p_counter < (len(p_result_list) - 1): cnr = str(p_result_list[p_counter][0]) next_num = (p_result_list[p_counter + 1]) next_num_cat = check_num_cat(next_num) nn_cat_key = "i" + str(next_num_cat) nn_cat_key_value = n_cat_value[nn_cat_key] key = cnr + nn_cat_key if key in return_p_dict: return_p_dict[key] += 1 p_counter += 1 return return_p_dict
def df_na_4d(input_list): # input: a list of str 4d num # output: a dict data to build a df # pass each element in list1 into na check modules and norm score modules num_sum_ls = [] num_range_ls = [] num_cat_ls = [] norm_num_sum = [] norm_num_cat = [] norm_total = [] for each in input_list: n_sum = na.check_num_sum(each) n_range = na.check_num_range(each) n_cat = na.check_num_cat(each) norm_numsum = round(na.calc_norm_num_sum(n_sum), 6) # round float to 6 decimals norm_numcat = round(na.calc_norm_num_cat(n_cat), 6) num_sum_ls.append(n_sum) num_range_ls.append(n_range) num_cat_ls.append(n_cat) norm_num_sum.append(norm_numsum) norm_num_cat.append(norm_numcat) norm_total.append(round(norm_numsum + norm_numcat, 6)) df_key = [ "4D_Num", "num-cat", "num-range", "num-sum", "norm-score-cat", "norm-score-sum", "norm-score-total" ] p1_dict_data = { df_key[0]: input_list, df_key[1]: num_cat_ls, df_key[2]: num_range_ls, df_key[3]: num_sum_ls, df_key[4]: norm_num_cat, df_key[5]: norm_num_sum, df_key[6]: norm_total } return p1_dict_data
import num_analysis as na # na.check_num_sum() # na.check_num_cat() # na.check_num_range() all_num = na.gen_num() all_num_pd_list = [] #list containing data for constructind pd df #[['1212', 22, 1, 6], ['1213', 12, 1, 7],...] df_columns = ["4D_num", "num_cat", "num_range", "num_sum", "num_score"] for each_num in all_num: num_str = each_num num_cat = na.check_num_cat(each_num) num_range = na.check_num_range(each_num) num_sum = na.check_num_sum(each_num) norm_sum = na.calc_norm_num_sum(num_sum) norm_cat = na.calc_norm_num_cat(num_cat) num_score = round((norm_sum + norm_cat), 6) each_num_list = [num_str, num_cat, num_range, num_sum, num_score] all_num_pd_list.append(each_num_list) df = pd.DataFrame(all_num_pd_list, columns=df_columns) #df containing all num # 4D_num : num_cat : num_range : num_sum df_num_score = df[["4D_num", "num_score"]]
def analyze_num_bought(num_bought): ## ========== WEB PARSING STAGE ========== ## start = "2015/08/01" end = "2015/08/31" print "Getting winnings data: " + start + " - " + end raw_result = get_data(start, end) combined_result = combine(raw_result) i24 = num_cat_sort_module.get_i24(combined_result) i12 = num_cat_sort_module.get_i12(combined_result) i6 = num_cat_sort_module.get_i6(combined_result) i4 = num_cat_sort_module.get_i4(combined_result) ## ========== CALCULATE THE NUM OF DRAW WITHIN STIPULATED RANGE ==========# draw_count = 0 for each_draw in combined_result: draw_count += each_draw[3] ## ========== GET WINNING FOR EACH NUM ========== ## i24_num_winning = {} for each_draw in i24: num = each_draw[0] amount = prize_calc.i24_prize_calc(each_draw) if num in i24_num_winning: i24_num_winning[num] += amount else: i24_num_winning[num] = amount i12_num_winning = {} for each_draw in i12: num = each_draw[0] amount = prize_calc.i12_prize_calc(each_draw) if num in i12_num_winning: i12_num_winning[num] += amount else: i12_num_winning[num] = amount i6_num_winning = {} for each_draw in i6: num = each_draw[0] amount = prize_calc.i6_prize_calc(each_draw) if num in i6_num_winning: i6_num_winning[num] += amount else: i6_num_winning[num] = amount i4_num_winning = {} for each_draw in i4: num = each_draw[0] amount = prize_calc.i4_prize_calc(each_draw) if num in i4_num_winning: i4_num_winning[num] += amount else: i4_num_winning[num] = amount ## ========== CHECK NUM-WINNING DICT AGAINST GIVEN NUM LIST ========== ## num_hit = [] #list of num that hit total_winning = 0 # store total winning all_num_cat_winning = {24:i24_num_winning,12:i12_num_winning,6:i6_num_winning,4:i4_num_winning} #dict mapping each num_cat to its winning for each_num in num_bought: each_num_perm = gen_perm(each_num) # generate all possible permutations for num bought num_cat = check_num_cat(each_num) num_winning = all_num_cat_winning[num_cat] for each_perm in each_num_perm: str_each_num = str(each_perm) if str_each_num in num_winning: total_winning += num_winning[str_each_num] new = [str_each_num, num_winning[str_each_num]] num_hit.append(new) sorted_num_hit = sorted(num_hit, key=getKey, reverse=True) return_lst = [total_winning, draw_count, sorted_num_hit] return return_lst