基础数据准备
基础数据是通过爬虫获取到。
以下是从第一期03年双色球开奖号到今天的所有数据整理,截止目前一共2549期,balls.txt 文件内容如下
Python 代码实现
分析数据特征和数据处理方式选择
代码语言:javascript复制#导入Counter
from collections import Counter
def readfile():
red_lists=[]
blue_lists=[]
#打开文件并获取文件句柄
with open("./balls.txt", "r",encoding='utf-8') as fp:
#开始读取文件并返回一个list
list1=fp.readlines()
#遍历整个文件内容
for i in range(len(list1)):
#替换掉n的字符再按空格分隔
list2=str(list1[i]).replace("n","").split(" ")
for j in range(len(list2)):
if j==6:
#蓝球放入到blue_lists 列表中
blue_lists.append(list2[j])
else:
#红球放入到red_lists 列表中
red_lists.append(list2[j])
#Counter可以快速便捷的对某些对象做一些统计操作,这里是对列表里面的数据进行出现次数统计,返回一个tuple
red_count=Counter(red_lists)
blue_count=Counter(blue_lists)
#most_common可以用来统计列表或字符串中最常出现的元素并做排序,并返回一个list
k = red_count.most_common(len(red_count))
#输出出现频率最高的六个红球
print("the red ball:",k[:6])
l = blue_count.most_common(len(blue_count))
#输出出现频率最高的六个蓝球
print("the blue ball:",l[:6])
if __name__=="__main__":
readfile()
执行结果
执行结果对比验证
从官网获取的数据进行对比,一致性校验通过。
总结:
Python 在数据处理方面有着非常强大的优势,Python 的 Panda 库也可以非常出色的完成双色球的数据统计,大家有兴趣的可以实验一下。