python 双色球数学组合公式_Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法...

本文实例讲述了Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法。分享给大家供大家参考,具体如下:

统计两个红球和蓝球,哪个组合最多,显示前19组数据

#!/usr/bin/python

# -*- coding:UTF-8 -*-

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import operator

#导入数据

df = pd.read_table('newdata.txt',header=None,sep=',')

tdate = sorted(df.loc[:,0])

# print tdate

#第1、2列的红球

h1 = df.loc[:,1:2].values

# print h1

#第2、3列的红球

h2 = df.loc[:,2:3].values

#第3、4列的红球

h3 = df.loc[:,3:4].values

#第4、5列的红球

h4 = df.loc[:,4:5].values

#第5、6列的红球

h5 = df.loc[:,5:6].values

#蓝球

b1 = df.loc[:,7:7].values

# print b1

#第1、3列红球

h6 = df.loc[:,1:3:2].values

h7 = df.loc[:,1:4:3].values

h8 = df.loc[:,1:5:4].values

h9 = df.loc[:,1:6:5].values

h10 = df.loc[:,2:4:2].values

h11 = df.loc[:,2:5:3].values

h12 = df.loc[:,2:6:4].values

h13 = df.loc[:,3:5:2].values

h14 = df.loc[:,3:6:3].values

#第4、6列红球

h15 = df.loc[:,4:6:2].values

#将蓝球添加到各红球组中(有2列数据变为3列数据),之后将所有数据按列向合并

data2 = np.append(h1, b1, axis=1)

for i in [h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15]:

data1 = np.append(i, b1, axis=1)

data2 = np.append(data2, data1, axis=0)

print data2

data1 = pd.DataFrame(data2)

#写入到2hldata.csv文件中

data1.to_csv('2hldata.csv',index=None,header=None)

#读取文件,进行统计,并且从大倒小排序

f = open("2hldata.csv")

count_dict = {}

for line in f.readlines():

line = line.strip()

count = count_dict.setdefault(line, 0)

count += 1

count_dict[line] = count

sorted_count_dict = sorted(count_dict.iteritems(), key=operator.itemgetter(1), reverse=True)

# for item in sorted_count_dict:

# print "%s,%d" % (item[0], item[1])

#重置DataFrame的index

fenzu = pd.DataFrame(sorted_count_dict).set_index([0])

print fenzu

x = list(fenzu.index[:19])

y = list(fenzu.values[:19])

print x

print y

#将index替换成数值,便于画图使用

s = pd.Series(range(1,len(x)+1), index=x)

plt.figure(figsize=(12,8),dpi=80)

plt.legend(loc='best')

plt.bar(s,y,alpha=.5, color='r',width=0.8)

plt.title('The two red and one blue ball number')

plt.xlabel('two red and one blue number')

plt.ylabel('times')

#将原来index的内容显示出来

plt.xticks(s,x, rotation=30,size=10,ha='left')

plt.show()

显示结果:

可以看出红球20、26和蓝球9以及红球17、21和蓝球14,出现次数最多12次

后期的3红球和蓝球,4红球和蓝球,5红球和蓝球,6红球和蓝球的统计,基本思路一致。

希望本文所述对大家Python程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值