学习笔记汇总
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学习(二)——双色球开奖数据分析相关推荐

  1. Python爬虫系列之双色球开奖信息爬取

    Python基于Beautiful Soup库对双色球开奖信息进行爬取 代码仅供学习交流,请勿用于非法用途 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发 > 点击 ...

  2. 20211217使用python3通过最近6期的双色球开奖结果预测新一期的号码

    20211217使用python3通过最近6期的双色球开奖结果预测新一期的号码 酬金/劳务费用:小奖请吃饭. 大奖给你技术支持费用! 按照你如今加班工资的2倍计酬! 第一步,希望2周完成,大概完成时间 ...

  3. 所有的双色球开奖记录都在这里了

    初学python,写了一个爬取历史双色球开奖记录的程序.希望大家互相交流学习 1.找到数据的入口 百度一下双色球历史开奖记录,出来许多网站,找到可以查看历史记录的网站就行,我这里找到的是 http:/ ...

  4. python+requests+ 爬取官网双色球开奖数据

    python+requests+mysql 爬取官网双色球开奖数据 分析网页数据获取方式 第一种查询方式 第二种查询方式 完整代码 分析网页数据获取方式 第一种查询方式 在官网上 可以找到多种数据查询 ...

  5. python3计算双色球_Python3实战:双色球开奖

    0.用经典概率学看双色球 双色球的一等奖中奖率大约为1772万分之一,六等奖的中奖概率略大于1/16,即6.25%.如果我们每期投资2元钱买彩票,那么中奖金额的期望略大于5元*6.25%,即0.312 ...

  6. 【Python爬虫】利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28

    链接:https://pan.baidu.com/s/18oE308_NVNPaCOACw_H5Hw?pwd=abc1 利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023- ...

  7. 利用Python获取历史双色球开奖结果

    import requests import pymssql from lxml import etree #配置连接数据库信息 server = "-------------" ...

  8. Java用Jsoup开发爬虫获取双色球开奖信息

    想要获取双色球开奖信息,利用爬虫无疑是个比较方便的方式,针对简单的功能,除了python以外,Java也有比较便捷的方式--Jsoup 要获取指定位置的内容,需要知道该内容的标签,比如红球的标签是'l ...

  9. python 爬取中彩网双色球开奖数据,预测下一期开奖号码

    爬取中彩网双色球开奖数据: import requests from bs4 import BeautifulSoup from collections import Counter# 获取内容 re ...

最新文章

  1. javascript密码强度验证!
  2. cmake CMakeLists.txt 命令 add_compile_options、add_definitions、target_compile_definitions、build_command
  3. Lua移植到arm上 并实现在arm上 可以让lua脚本调c语言,C语言调用lua脚本
  4. Python list(列表) 详细总结
  5. 洛谷P1061 Jam的计数法
  6. struts实现分页_在TensorFlow中实现点Struts
  7. windows nginx c++读取请求数据_轻松应对百万并发的Nginx,搞懂LinuxC/C++这些技术栈升职加薪...
  8. 互联网裁员屡见不鲜,但有时互联网的裁员却不太体面
  9. 《Ray Tracing in One Weekend》——Chapter 2: The vec3 class
  10. 第三篇 ME909s-821设备描述符分析
  11. 数据分析tableau 和 python的区别_数据分析师综述篇
  12. windows截图快捷键_使用快捷键打开并使用Windows截图工具
  13. Android异常之SIGABRT
  14. 感性和理性,个人的看法
  15. pytorch 中的torch.bmm
  16. 简单的蜜罐以及开源蜜罐HFish的安装与配置
  17. 高效率工具推荐,让你快速提高效率
  18. 宇宙中最大的神秘结构被发现 跨度达40亿光年
  19. 工商管理如何利用计算机思维,论述工商管理人才素质的重要性
  20. 2020CCFBDCI通用音频分类CNN方案(0.90+方案)

热门文章

  1. 桌面无法打开软件 从计算机里面可以,xp电脑桌面上软件打不开怎么办
  2. [架构之路-202]- 常见的需求获取技术=》输出=》用户需求、客户需求(As...., I want.....)、用例图
  3. 【Linux系列-2】iostat命令详解
  4. “检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005”的解决方法
  5. SVN客户端无法连接服务器的问题
  6. springboot实现无数据库启动
  7. 深度系统linux15.3 32位下载,Deepin 15.3 i386官方正式版(32位)
  8. LINUX——shell脚本编程
  9. 07_02 事件的基本事件
  10. 家居行业供应链管理系统解决方案