python获取历史双色球数据_你的梦想,我来买单!Python分析双色球中奖号码竟成功获取特等奖

3fb3506ff0abed7447d7050f7131f04f.png

关于双色球的话题估计大家都听的很多,毕竟成本很低,但是收获很高。毕竟当利润达到100%时,就有人敢于铤而走险。当利润达到200%时,他们就敢于冒上断头台的危险。 而当利润达到300%他们就会践踏人间的一切法律。更何况是n倍的利润刺激,只是想要中奖的概率实在是低到让人绝望。

不过,尽管是这样,还是有非常多的人愿意去尝试一下。毕竟,成本实在太低,万一要是能中呢?相信在读这篇文章的朋友也会经常的去买一波“梦想”,万一实现了呢?

梦想还是要有的,不然和咸鱼有什么区别。今天我的目的就是帮大家实现梦想,通过Python分析,增加你的梦想实现概率。

4de59dc0602889bbd87ad59b4ed8de00.png

1.数据爬取网页:历史双色球数据

 #分析网页后可以得知get历史所有数据的参数url='https://datachart.500.com/ssq/history/newinc/history.php?start=03001' #加载相关的库import requestsimport numpy as npimport pandas as pd#获取历史所有双色球数据response = requests.get(url)response.encoding = 'utf-8' re_text = response.text#网页数据解析re=re_text.split('')[1].split('')[0]result=re.split('')[1:]all_numbers=[]for i in result: each_numbers=[] i=i.replace('','') each=i.split('')[:-1] for j in each: each_numbers.append(j.split('>')[1].replace(' ',''))  all_numbers.append(each_numbers) #定义列名称 col=['期号','红球1','红球2','红球3','红球4','红球5','红球6','蓝球','快乐星期天','奖池奖金(元)', '一等奖注数','一等奖奖金(元)','二等奖注数','二等奖奖金(元)','总投注额(元)','开奖日期']#解析完网页数据,生成双色球数据框df_all=pd.DataFrame(all_numbers,columns=col)df_all.head()
2eb96d3646eacfe5ce633d8c6e7525d6.png

2.数据转换

#日期转换df_all['开奖日期_dt']=pd.to_datetime(df_all['开奖日期'])df_all['year']=df_all['开奖日期_dt'].dt.yeardf_all['month']=df_all['开奖日期_dt'].dt.monthdf_all['day']=df_all['开奖日期_dt'].dt.daydf_all['weekday']=df_all['开奖日期_dt'].dt.weekday_namedf_all.head()
5a845708ff090f7721e2fd80da821b8c.png
#one-hot 编码转换自定义函数def lotterydata(df): modeldata=df.copy()  redball=[] for i in range(1,34): redball.append('红球'+'%02d'%i) for i in redball: modeldata[i]=0  blueball=[] for i in range(1,17): blueball.append('蓝球'+'%02d'%i) for i in blueball: modeldata[i]=0   for row in range(modeldata.shape[0]): #print(row) #print(modeldata.iloc[row,:]) for i in redball: #print(i) #modeldata[i]=0 if (modeldata.iloc[row,:]['红球1']==i[-2:] or modeldata.iloc[row,:]['红球2']==i[-2:]  or modeldata.iloc[row,:]['红球3']==i[-2:] or modeldata.iloc[row,:]['红球4']==i[-2:]  or modeldata.iloc[row,:]['红球5']==i[-2:] or modeldata.iloc[row,:]['红球6']==i[-2:]): modeldata.loc[row,i]=1 for j in blueball: #modeldata[j]=0 if modeldata.iloc[row,:]['蓝球']==j[-2:]: modeldata.loc[row,j]=1 return modeldata#生成各颜色球的0-1编码modeldata=lotterydata(df_all)modeldata.head()
3948027a9fd515a2b57c5ffebc63845c.png

3.数据分析与展示

allhistorydata=modeldata.iloc[:,-49:].copy()#历史所有红球和蓝球数据allhistorydata_red=allhistorydata.iloc[:,:33]allhistorydata_blue=allhistorydata.iloc[:,-16:]#最近20期红球和最近48期蓝球#(33*3)/6 每个红球有3次出现机会,看一共需要多少期,这里取整数20期#(16*3)/1 每个蓝球有3次出现机会,看一共需要多少期recently20_red=allhistorydata.iloc[:20,:33]recently48_blue=allhistorydata.iloc[:48,-16:]#求和historyred_sum=allhistorydata_red.sum()historyblue_sum=allhistorydata_blue.sum()recently20red_sum=recently20_red.sum()recently48blue_sum=recently48_blue.sum()#排序historyred_sum=historyred_sum.sort_values(ascending=True)historyblue_sum=historyblue_sum.sort_values(ascending=True)recently20red_sum=recently20red_sum.sort_values(ascending=True)recently48blue_sum=recently48blue_sum.sort_values(ascending=True)#数据展示import matplotlib.pyplot as plt%matplotlib inlineplt.rcParams['font.sans-serif'] = ['SimHei'] #显示中文plt.figure(figsize=(30,24),facecolor='snow')#历史出现次数最少的10个红球x_red=historyred_sum.index.map(lambda x:x[-2:])[:10]y_red=historyred_sum.values[:10]#历史出现次数最少的5个蓝球x_blue=historyblue_sum.index.map(lambda x:x[-2:])[:5]y_blue=historyblue_sum.values[:5]plt.subplot(3,2,1)plt.bar(x_red,y_red,width=0.4,align='center',color='r')for a,b in zip(x_red,y_red): plt.text(a,b,b,ha='center',va='bottom',fontsize=15)plt.tick_params(axis='x',labelsize=30)plt.title("历史出现次数最少的10个红球",fontsize=30)plt.subplot(3,2,2)plt.bar(x_blue,y_blue,width=0.2,align='center',color='b')for a,b in zip(x_blue,y_blue): plt.text(a,b,b,ha='center',va='bottom',fontsize=15)plt.tick_params(axis='x',labelsize=30)plt.title("历史出现次数最少的5个蓝球",fontsize=30)#最近20期红球x20_red=recently20red_sum.index.map(lambda x:x[-2:])y20_red=recently20red_sum.values#最近48期蓝球x48_blue=recently48blue_sum.index.map(lambda x:x[-2:])y48_blue=recently48blue_sum.valuesplt.subplot(3,1,2)plt.bar(x20_red,y20_red,width=0.5,align='center',color='r')for a,b in zip(x20_red,y20_red): plt.text(a,b,b,ha='center',va='bottom',fontsize=15)plt.tick_params(axis='x',labelsize=25)plt.title("最近20期红球情况",fontsize=30)plt.subplot(3,1,3)plt.bar(x48_blue,y48_blue,width=0.5,align='center',color='b')for a,b in zip(x20_blue,y20_blue): plt.text(a,b,b,ha='center',va='bottom',fontsize=15)plt.tick_params(axis='x',labelsize=25)plt.title("最近48期蓝球情况",fontsize=30)plt.show() 最终的数据展示结果,仅供参考!!!
baccc8478964cc653fc85d02419c11f3.png

总结

既然是概率学问题,那么数据分析肯定是有作用的,我能帮的就只有这么多了!希望大家能够一夜之间走向人生巅峰,到时候记得别忘了我哦!

不过还是告诫大家一句,就算是将双色球分析的明明白白,但是这个东西始终是随机性的,而且数据分析也不一定有作用。小买怡情,大买伤身。

cda583bc71e593efa37d5eb1c1c0097b.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值