歷史雙色球數(shù)據(jù)分析---python

由于身邊同事經(jīng)常買雙色球,時(shí)間長了也就慢慢關(guān)注這個(gè),我們中午經(jīng)常也一塊去吃飯甫何,然后去彩票站點(diǎn)。之前是在支付寶上面就可以買遇伞,那會(huì)自己也會(huì)偶爾買10元的辙喂。這片文章主要是爬取了歷史雙色球所有數(shù)據(jù),并進(jìn)行簡單分析鸠珠,純屬業(yè)余愛好巍耗,分析結(jié)果僅供參考。

1.數(shù)據(jù)爬取網(wǎng)頁:歷史雙色球數(shù)據(jù)

 #分析網(wǎng)頁后可以得知get歷史所有數(shù)據(jù)的參數(shù)
url='https://datachart.500.com/ssq/history/newinc/history.php?start=03001'  

#加載相關(guān)的庫
import requests
import numpy as np
import pandas as pd

#獲取歷史所有雙色球數(shù)據(jù)
response = requests.get(url)
response.encoding = 'utf-8'  
re_text = response.text

#網(wǎng)頁數(shù)據(jù)解析
re=re_text.split('<tbody id="tdata">')[1].split('</tbody>')[0]
result=re.split('<tr class="t_tr1">')[1:]

all_numbers=[]
for i in result:
    each_numbers=[]
    i=i.replace('<!--<td>2</td>-->','')
    each=i.split('</td>')[:-1]
    for j in each:
        each_numbers.append(j.split('>')[1].replace('&nbsp;',''))
    
    all_numbers.append(each_numbers)
  
#定義列名稱  
col=['期號(hào)','紅球1','紅球2','紅球3','紅球4','紅球5','紅球6','藍(lán)球','快樂星期天','獎(jiǎng)池獎(jiǎng)金(元)',
     '一等獎(jiǎng)注數(shù)','一等獎(jiǎng)獎(jiǎng)金(元)','二等獎(jiǎng)注數(shù)','二等獎(jiǎng)獎(jiǎng)金(元)','總投注額(元)','開獎(jiǎng)日期']

#解析完網(wǎng)頁數(shù)據(jù)渐排,生成雙色球數(shù)據(jù)框
df_all=pd.DataFrame(all_numbers,columns=col)
df_all.head()
雙色球1.png

2.數(shù)據(jù)轉(zhuǎn)換

#日期轉(zhuǎn)換
df_all['開獎(jiǎng)日期_dt']=pd.to_datetime(df_all['開獎(jiǎng)日期'])
df_all['year']=df_all['開獎(jiǎng)日期_dt'].dt.year
df_all['month']=df_all['開獎(jiǎng)日期_dt'].dt.month
df_all['day']=df_all['開獎(jiǎng)日期_dt'].dt.day
df_all['weekday']=df_all['開獎(jiǎng)日期_dt'].dt.weekday_name
df_all.head()
雙色球2.png
#one-hot 編碼轉(zhuǎn)換自定義函數(shù)
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('藍(lán)球'+'%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,:]['藍(lán)球']==j[-2:]:
                modeldata.loc[row,j]=1
    return modeldata

#生成各顏色球的0-1編碼
modeldata=lotterydata(df_all)
modeldata.head()
雙色球3.png

3.數(shù)據(jù)分析與展示

allhistorydata=modeldata.iloc[:,-49:].copy()

#歷史所有紅球和藍(lán)球數(shù)據(jù)
allhistorydata_red=allhistorydata.iloc[:,:33]
allhistorydata_blue=allhistorydata.iloc[:,-16:]

#最近20期紅球和最近48期藍(lán)球
#(33*3)/6  每個(gè)紅球有3次出現(xiàn)機(jī)會(huì)炬太,看一共需要多少期,這里取整數(shù)20期
#(16*3)/1  每個(gè)藍(lán)球有3次出現(xiàn)機(jī)會(huì)驯耻,看一共需要多少期
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)

#數(shù)據(jù)展示
import matplotlib.pyplot as plt

%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei']    #顯示中文

plt.figure(figsize=(30,24),facecolor='snow')

#歷史出現(xiàn)次數(shù)最少的10個(gè)紅球
x_red=historyred_sum.index.map(lambda x:x[-2:])[:10]
y_red=historyred_sum.values[:10]

#歷史出現(xiàn)次數(shù)最少的5個(gè)藍(lán)球
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("歷史出現(xiàn)次數(shù)最少的10個(gè)紅球",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("歷史出現(xiàn)次數(shù)最少的5個(gè)藍(lán)球",fontsize=30)

#最近20期紅球
x20_red=recently20red_sum.index.map(lambda x:x[-2:])
y20_red=recently20red_sum.values

#最近48期藍(lán)球
x48_blue=recently48blue_sum.index.map(lambda x:x[-2:])
y48_blue=recently48blue_sum.values

plt.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期藍(lán)球情況",fontsize=30)

plt.show()

                                 最終的數(shù)據(jù)展示結(jié)果亲族,僅供參考!?筛俊霎迫!
數(shù)據(jù)展示結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市城看,隨后出現(xiàn)的幾起案子女气,更是在濱河造成了極大的恐慌,老刑警劉巖测柠,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缘滥,居然都是意外死亡轰胁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門朝扼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赃阀,“玉大人,你說我怎么就攤上這事擎颖¢凰梗” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵搂捧,是天一觀的道長驮俗。 經(jīng)常有香客問我,道長允跑,這世上最難降的妖魔是什么王凑? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任搪柑,我火速辦了婚禮,結(jié)果婚禮上索烹,老公的妹妹穿的比我還像新娘工碾。我一直安慰自己,他們只是感情好百姓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布渊额。 她就那樣靜靜地躺著,像睡著了一般垒拢。 火紅的嫁衣襯著肌膚如雪旬迹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天子库,我揣著相機(jī)與錄音舱权,去河邊找鬼。 笑死仑嗅,一個(gè)胖子當(dāng)著我的面吹牛宴倍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仓技,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼鸵贬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了脖捻?” 一聲冷哼從身側(cè)響起阔逼,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎地沮,沒想到半個(gè)月后嗜浮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摩疑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年危融,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雷袋。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吉殃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出楷怒,到底是詐尸還是另有隱情蛋勺,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布鸠删,位于F島的核電站抱完,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冶共。R本人自食惡果不足惜乾蛤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一每界、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧家卖,春花似錦眨层、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至酪捡,卻和暖如春叁征,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逛薇。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國打工捺疼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人永罚。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓啤呼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親呢袱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子官扣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348