diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..7901210 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,9 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +.idea/ \ No newline at end of file diff --git a/lottery/plw.py b/lottery/plw.py index fecc51b..43c7dd8 100644 --- a/lottery/plw.py +++ b/lottery/plw.py @@ -1,6 +1,5 @@ import numpy as np import pandas as pd -import math from sqlalchemy import create_engine @@ -9,10 +8,30 @@ conn = engine.connect() sql = """SELECT draw_issue, draw_code, sum_num FROM plw ORDER BY id DESC LIMIT 10""" df = pd.read_sql(sql, conn) print(df) +count = 1000 * 100 -a = np.arange(100000) +a = np.arange(count) l = set([ f"{i:05d}" for i in a ]) sum_list = [ sum(map(int, list(i))) for i in l] sum_df = pd.value_counts(sum_list) -print(sum_df.to_dict()) -print(np.ceil((100000/sum_df)).to_dict()) \ No newline at end of file +# print(sum_df.to_dict()) +# print(np.ceil((100000/sum_df)).to_dict()) + +# 数字个数统计 +sum_union_dict = dict() +num_cnt_dict = dict() +for i in a: + item = f"{i:05d}" + sum_first_3 = sum(map(int, list(item[:3]))) + sum_next_3 = sum(map(int, list(item[2:]))) + sum_key = f"{sum_first_3}_{sum_next_3}" + sum_v = sum_union_dict.get(sum_key, 0) + sum_union_dict[sum_key] = sum_v + 1 + num_count = len(set(item)) + v = num_cnt_dict.get(num_count, 0) + num_cnt_dict[num_count] = v + 1 +sum_union_df = pd.Series(sum_union_dict) +num_cnt_df = pd.Series(num_cnt_dict) +print(sum_union_df.sort_values(ascending=False)[:20]) +print(count / num_cnt_df) +print(sum_union_df["14_15"]) \ No newline at end of file diff --git a/model/football_match.py b/model/football_match.py index 196098b..c60b58b 100644 --- a/model/football_match.py +++ b/model/football_match.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, Date, DateTime, Integer, String, text +from sqlalchemy import Column, Date, DateTime, Integer, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -28,8 +28,9 @@ class FootballMatch(Base): result = Column(Integer, comment='结果:0 负 1 平 3 胜') rq_count = Column(Integer, comment='让球数') rq_result = Column(Integer, comment='让球结果:0 负 1 平 3 胜') - bqc_result = Column(String(10, 'utf8mb4_general_ci'), comment='半全场结果') + bqc_result = Column(VARCHAR(10), comment='半全场结果') spf_odds_ranking = Column(Integer, comment='胜平负赔率排名') + rq_spf_odds_ranking = Column(Integer, comment='让球胜平负赔率排名') bf_odds_ranking = Column(Integer, comment='比分赔率排名') bqc_odds_ranking = Column(Integer, comment='半全场赔率排名') zjq_odds_ranking = Column(Integer, comment='总进球数赔率排名') diff --git a/model/football_match_bf_odds.py b/model/football_match_bf_odds.py index 9cd3ccb..41a554d 100644 --- a/model/football_match_bf_odds.py +++ b/model/football_match_bf_odds.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, DateTime, Float, Integer, text +from sqlalchemy import Column, DateTime, Float, Integer, JSON, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -14,7 +14,8 @@ class FootballMatchBfOdd(Base): id = Column(Integer, primary_key=True) match_id = Column(Integer) issue = Column(VARCHAR(255)) - result = Column(Float) + result = Column(VARCHAR(50)) + odds = Column(Float) _1_0 = Column('1-0', Float) _2_0 = Column('2-0', Float) _2_1 = Column('2-1', Float) @@ -46,4 +47,5 @@ class FootballMatchBfOdd(Base): win_others = Column(Float) draw_others = Column(Float) lost_others = Column(Float) + odds_history = Column(JSON) created_at = Column(DateTime, server_default=text("CURRENT_TIMESTAMP")) diff --git a/model/football_match_bqc_odds.py b/model/football_match_bqc_odds.py index 3a64351..01d4cf4 100644 --- a/model/football_match_bqc_odds.py +++ b/model/football_match_bqc_odds.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, DateTime, Float, Integer, String, text +from sqlalchemy import Column, DateTime, Float, Integer, JSON, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -14,7 +14,8 @@ class FootballMatchBqcOdd(Base): id = Column(Integer, primary_key=True) match_id = Column(Integer) issue = Column(VARCHAR(255)) - result = Column(String(50, 'utf8mb4_general_ci')) + result = Column(VARCHAR(50)) + odds = Column(Float) _3_3 = Column('3_3', Float) _3_1 = Column('3_1', Float) _3_0 = Column('3_0', Float) @@ -24,4 +25,5 @@ class FootballMatchBqcOdd(Base): _0_3 = Column('0_3', Float) _0_1 = Column('0_1', Float) _0_0 = Column('0_0', Float) + odds_history = Column(JSON) created_at = Column(DateTime, server_default=text("CURRENT_TIMESTAMP")) diff --git a/model/football_match_spf_odds.py b/model/football_match_spf_odds.py index 3c58958..5778e23 100644 --- a/model/football_match_spf_odds.py +++ b/model/football_match_spf_odds.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, DateTime, Float, Integer, text +from sqlalchemy import Column, DateTime, Float, Integer, JSON, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -15,12 +15,16 @@ class FootballMatchSpfOdd(Base): match_id = Column(Integer) issue = Column(VARCHAR(255)) result = Column(Integer, comment='结果') + odds = Column(Float) rq_count = Column(Integer, comment='让球数') rq_result = Column(Integer, comment='让球结果') + rq_odds = Column(Float) win = Column(Float, comment='胜') draw = Column(Float, comment='平') lost = Column(Float, comment='负') rq_win = Column(Float, comment='让球-胜') rq_draw = Column(Float, comment='让球-平') rq_lost = Column(Float, comment='让球-负') + odds_history = Column(JSON) + rq_odds_history = Column(JSON) created_at = Column(DateTime, server_default=text("CURRENT_TIMESTAMP")) diff --git a/model/football_match_zjq_odds.py b/model/football_match_zjq_odds.py index 3a8b5c6..4ebc035 100644 --- a/model/football_match_zjq_odds.py +++ b/model/football_match_zjq_odds.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, Float, Integer, String +from sqlalchemy import Column, DateTime, Float, Integer, JSON, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -14,7 +14,8 @@ class FootballMatchZjqOdd(Base): id = Column(Integer, primary_key=True) issue = Column(VARCHAR(255)) match_id = Column(Integer) - result = Column(String(50, 'utf8mb4_general_ci')) + result = Column(VARCHAR(50)) + odds = Column(Float) ball_0 = Column(Float) ball_1 = Column(Float) ball_2 = Column(Float) @@ -23,3 +24,5 @@ class FootballMatchZjqOdd(Base): ball_5 = Column(Float) ball_6 = Column(Float) ball_7_plus = Column(Float) + odds_history = Column(JSON) + created_at = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"))