py_scripts/lottery/plw.py

37 lines
1.1 KiB
Python

import numpy as np
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://test:123456@localhost/lottery?charset=utf8")
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(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())
# 数字个数统计
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"])