本文实例讲述了Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法。分享给大家供大家参考,具体如下:
统计两个红球和蓝球,哪个组合最多,显示前19组数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#!/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程序设计有所帮助。
原文链接:http://blog.csdn.net/levy_cui/article/details/51455457