Pandas学习(二)——双色球开奖数据分析
学习笔记汇总
Pandas学习(一)–数据的导入
pandas学习(二)–双色球数据分析
pandas学习(三)–NAB球员薪资分析
pandas学习(四)–数据的归一化
pandas学习(五)–pandas学习视频
本章主要利用双色球开奖数据来学习pandas的DataFrame数据选取,Series的统计功能,以及matplotlib画柱状图。
ball.py
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from utils import *HISTORY_NUM = "079" # 历史同期
HEAD_NUM = 30 # 近30期plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号# read data
data_sheet = 'ssqexcle_result.xls'
all_data = pd.read_excel(data_sheet, parse_cols=(0, 2, 3, 4, 5, 6, 7, 8))
all_data['index'] = all_data['index'].astype(np.str)#统计历史数据
history_data = all_data[[x.endswith(HISTORY_NUM) for x in all_data['index']]].copy()
history_red_ball = history_data.iloc[:, 1:7]
history_blue_ball = history_data.iloc[:, 7]count_red_ball = history_red_ball.stack().value_counts()
count_blue_ball = history_blue_ball.value_counts()# 画图
plt.figure(1)
count_red_ball.plot(kind='bar', align='center')
plt.xlabel("红球数字")
plt.ylabel("次数")
plt.show()plt.figure(2)
count_blue_ball.plot(kind='bar', align='center')
plt.xlabel("蓝球数字")
plt.ylabel("次数")
plt.show()#统计近n期数据
head_n_data = all_data.head(HEAD_NUM).copy()
head_n_red_ball = head_n_data.iloc[:, 1:7]
head_n_blue_ball = head_n_data.iloc[:, 7]odd_even_dict = calculate_odd_vs_even(head_n_red_ball) #计算奇偶比
print(odd_even_dict)#计算3区比
result = cal_3distance_times(all_data.iloc[:, 1:7])
print(result)# 统计红球2连号出现次数
result = cal_2sequence_num_times(all_data.iloc[:, 1:7])
print(result)# 统计红球3连号出现次数
result = cal_3sequence_num_times(all_data.iloc[:, 1:7])
print(result)#统计2个球组合出现的频次
result = cal_2combination_times(all_data.iloc[:, 1:7])
print(result)#统计3个红球组合出现的频次
result = cal_3combination_times(all_data.iloc[:, 1:7])
print(result)
utils.py
# -*- coding: utf-8 -*-def calculate_odd_vs_even(dataframe):# 计算奇偶比result_dict = {}for index, row in dataframe.iterrows():odd = 0 # 奇数even = 0 # 偶数for x in row:if x & 1:odd += 1else:even += 1key = "%s:%s" % (str(odd), str(even))if key in result_dict:result_dict[key] += 1else:result_dict[key] = 1return result_dictdef cal_2sequence_num_times(dataframe):"""计算红球2连号出现的频次"""result_dict = {}for index, row in dataframe.iterrows():a = 1while a < 33:if (a in row.values) and (a + 1 in row.values):key = "%s:%s" % (str(a), str(a + 1))if key in result_dict:result_dict[key] += 1else:result_dict[key] = 1a += 1return sorted(result_dict.items(), key=lambda item: item[1])def cal_3sequence_num_times(dataframe):"""计算红球3连号出现的频次"""result_dict = {}for index, row in dataframe.iterrows():a = 1while a < 32:if (a in row.values) and (a + 1 in row.values) and (a + 2 in row.values):key = "%s:%s:%s" % (str(a), str(a + 1), str(a + 2))if key in result_dict:result_dict[key] += 1else:result_dict[key] = 1a += 1return sorted(result_dict.items(), key=lambda item: item[1])def cal_3distance_times(dataframe):"""计算红球的3区比"""result_dict = {}for index, row in dataframe.iterrows():little = 0 # 小区middle = 0 # 中区big = 0 # 大区for x in row.values:if x <= 11:little += 1elif x <= 22:middle += 1else:big += 1key = "%s:%s:%s" % (str(little), str(middle), str(big))if key in result_dict:result_dict[key] += 1else:result_dict[key] = 1return sorted(result_dict.items(), key=lambda item: item[1])def cal_2combination_times(dataframe):"""计算红球2个球组合出现的频次"""result_dict = {}for index, row in dataframe.iterrows():for a in range(6):for b in range(a + 1, 6):key = "%s:%s" % (str(row.values[a]), str(row.values[b]))if key in result_dict:result_dict[key] += 1else:result_dict[key] = 1return sorted(result_dict.items(), key=lambda item: item[1])def cal_3combination_times(dataframe):"""计算红球3个球组合出现的频次"""result_dict = {}for index, row in dataframe.iterrows():for a in range(6):for b in range(a + 1, 6):for c in range(b + 1, 6):key = "%s:%s:%s" % (str(row.values[a]), str(row.values[b]), str(row.values[c]))if key in result_dict:result_dict[key] += 1else:result_dict[key] = 1return sorted(result_dict.items(), key=lambda item: item[1])
获取出来的历史数据如下所示:
index red1 red2 red3 red4 red5 red6 blue
20 2017079 3 7 14 23 25 27 08
173 2016079 1 3 10 12 24 28 02
327 2015079 9 14 15 20 26 32 11
479 2014079 2 7 16 22 27 28 02
633 2013079 7 13 17 19 22 26 13
787 2012079 6 7 12 24 30 33 12
940 2011079 3 14 15 16 24 29 05
1093 2010079 8 11 12 14 18 22 02
1247 2009079 2 9 16 21 30 31 13
1401 2008079 3 4 5 10 20 32 09
1554 2007079 3 4 14 20 21 25 14
1708 2006079 6 11 13 17 20 32 08
1861 2005079 3 9 20 24 25 28 05
1983 2004079 7 13 14 17 19 30 03
2072 2003079 12 15 22 23 26 31 04
画出来的 图如下所示:
1、红球历史数据次数统计图
2、蓝球历史数据次数统计图
数据以及代码下载地址:链接:http://pan.baidu.com/s/1c1OdNs0 密码:87k6
欢迎python爱好者加入:学习交流群 667279387
Pandas学习(二)——双色球开奖数据分析相关推荐
- Python爬虫系列之双色球开奖信息爬取
Python基于Beautiful Soup库对双色球开奖信息进行爬取 代码仅供学习交流,请勿用于非法用途 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发 > 点击 ...
- 20211217使用python3通过最近6期的双色球开奖结果预测新一期的号码
20211217使用python3通过最近6期的双色球开奖结果预测新一期的号码 酬金/劳务费用:小奖请吃饭. 大奖给你技术支持费用! 按照你如今加班工资的2倍计酬! 第一步,希望2周完成,大概完成时间 ...
- 所有的双色球开奖记录都在这里了
初学python,写了一个爬取历史双色球开奖记录的程序.希望大家互相交流学习 1.找到数据的入口 百度一下双色球历史开奖记录,出来许多网站,找到可以查看历史记录的网站就行,我这里找到的是 http:/ ...
- python+requests+ 爬取官网双色球开奖数据
python+requests+mysql 爬取官网双色球开奖数据 分析网页数据获取方式 第一种查询方式 第二种查询方式 完整代码 分析网页数据获取方式 第一种查询方式 在官网上 可以找到多种数据查询 ...
- python3计算双色球_Python3实战:双色球开奖
0.用经典概率学看双色球 双色球的一等奖中奖率大约为1772万分之一,六等奖的中奖概率略大于1/16,即6.25%.如果我们每期投资2元钱买彩票,那么中奖金额的期望略大于5元*6.25%,即0.312 ...
- 【Python爬虫】利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28
链接:https://pan.baidu.com/s/18oE308_NVNPaCOACw_H5Hw?pwd=abc1 利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023- ...
- 利用Python获取历史双色球开奖结果
import requests import pymssql from lxml import etree #配置连接数据库信息 server = "-------------" ...
- Java用Jsoup开发爬虫获取双色球开奖信息
想要获取双色球开奖信息,利用爬虫无疑是个比较方便的方式,针对简单的功能,除了python以外,Java也有比较便捷的方式--Jsoup 要获取指定位置的内容,需要知道该内容的标签,比如红球的标签是'l ...
- python 爬取中彩网双色球开奖数据,预测下一期开奖号码
爬取中彩网双色球开奖数据: import requests from bs4 import BeautifulSoup from collections import Counter# 获取内容 re ...
最新文章
- javascript密码强度验证!
- cmake CMakeLists.txt 命令 add_compile_options、add_definitions、target_compile_definitions、build_command
- Lua移植到arm上 并实现在arm上 可以让lua脚本调c语言,C语言调用lua脚本
- Python list(列表) 详细总结
- 洛谷P1061 Jam的计数法
- struts实现分页_在TensorFlow中实现点Struts
- windows nginx c++读取请求数据_轻松应对百万并发的Nginx,搞懂LinuxC/C++这些技术栈升职加薪...
- 互联网裁员屡见不鲜,但有时互联网的裁员却不太体面
- 《Ray Tracing in One Weekend》——Chapter 2: The vec3 class
- 第三篇 ME909s-821设备描述符分析
- 数据分析tableau 和 python的区别_数据分析师综述篇
- windows截图快捷键_使用快捷键打开并使用Windows截图工具
- Android异常之SIGABRT
- 感性和理性,个人的看法
- pytorch 中的torch.bmm
- 简单的蜜罐以及开源蜜罐HFish的安装与配置
- 高效率工具推荐,让你快速提高效率
- 宇宙中最大的神秘结构被发现 跨度达40亿光年
- 工商管理如何利用计算机思维,论述工商管理人才素质的重要性
- 2020CCFBDCI通用音频分类CNN方案(0.90+方案)
热门文章
- 桌面无法打开软件 从计算机里面可以,xp电脑桌面上软件打不开怎么办
- [架构之路-202]- 常见的需求获取技术=》输出=》用户需求、客户需求(As...., I want.....)、用例图
- 【Linux系列-2】iostat命令详解
- “检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005”的解决方法
- SVN客户端无法连接服务器的问题
- springboot实现无数据库启动
- 深度系统linux15.3 32位下载,Deepin 15.3 i386官方正式版(32位)
- LINUX——shell脚本编程
- 07_02 事件的基本事件
- 家居行业供应链管理系统解决方案