In [3]:
score = [[2.93, 2.55, 6.35, 0.81, 1.43, 1.83, 2.93, 0.17, 1.83, 9.17, 4.11, 3.35, 0.81, 
          4.15, 1.78, 0.17, 0.98, 2.16, 1.7, 1.78, 1.43, 3.65, 1.37, 2.55, 3.35, 1.37, 
          0.51, 1.36, 0.51, 0.31, 0.4, 2.29, 1.02, 9.17, 0.31, 0.98, 4.15, 6.35, 1.25, 
          3.65, 1.7, 0.36, 4.11, 1.36, 0.4, 1.93, 0.31, 2.37, 1.56, 2.29, 2.37, 0.44, 
          1.25, 2.16, 1.93, 0.36, 0.31, 1.02, 1.56, 0.44]
,[5.44, 16.8, 15.34, 4.61, 9.63, 4.32, 2.97, 6.41, 4.64, 7.54, 1.95, 4.09, 4.09, 1.16,
  5.05, 8.91, 4.57, 2.48, 3.75, 1.16, 2.06, 4.68, 3.06, 0.97, 2.2, 0.57, 1.32, 3.75, 
  2.97, 3.04, 1.03, 0.89, 2.3, 1.99, 2.06, 0.97, 4.83, 4.35, 1.79, 2.48, 1.81, 5.44, 
  0.58, 1.42, 5.89, 1.95, 2.2, 4.32, 1.51, 0.92, 0.89, 2.95, 0.71, 0.52, 0.36, 3.05, 
  7.71, 1.32, 1.81, 2.02, 1.39, 1.03, 1.2, 3.06, 0.71, 1.79, 1.47, 1.51, 0.58, 1.03, 
  0.33, 0.57, 0.66, 2.35, 0.95, 3.05, 3.54, 0.34, 4.09, 0.92, 0.32, 4.64, 0.33, 0.97,
  0.52, 3.44, 1.09, 0.32, 0.28, 0.66, 1.39, 1.03, 4.57, 4.61, 0.94, 0.66, 4.83, 2.7, 
  5.05, 0.97, 0.89, 15.34, 1.42, 0.25, 8.91, 3.04, 6.41, 0.81, 2.95, 5.89, 0.28, 4.35,
  0.94, 0.34, 4.09, 1.99, 2.04, 4.68, 2.3, 3.44, 1.09, 2.02, 2.7, 0.2, 7.54, 4.83,
  0.25, 2.35, 7.71, 4.83, 3.54, 1.47, 2.04, 16.8, 0.95, 0.81, 1.2, 0.2, 0.89, 9.63, 
  0.36, 0.66]
,[8.64, 3.74, 5.44, 14.75, 8.63, 18.99, 23.1, 20.34, 2.39, 1.77, 5.31, 7.24, 8.66, 
  5.44, 8.44, 15.33, 8.23, 11.88, 3.63, 6.78, 6.73, 20.1, 6.88, 3.17, 1.77, 1.41, 
  6.44, 4.44, 3.06, 9.38, 8.98, 0.27, 2.42, 5.44, 1.41, 2.2, 3.74, 1.7, 1.71, 0.8, 
  0.27, 3.48, 1.18, 1.51, 1.37, 1.4, 0.9, 1.38, 5.31, 1.81, 4.45, 0.65, 6.94, 4.51,
  1.4, 1.51, 2.38, 1.24, 2.39, 6.25, 3.2, 1.81, 2.66, 3.1, 1.19, 1.24, 0.14, 1.68,
  3.63, 0.9, 2.65, 7.24, 3.07, 4.44, 6.73, 1.88, 4.75, 0.8, 1.37, 1.74, 0.72, 0.65,
  1.54, 4.75, 8.63, 2.42, 0.45, 1.81, 11.88, 1.54, 1.41, 9.38, 4.75, 4.75, 18.99,
  0.26, 1.63, 5.44, 1.36, 3.05, 6.25, 1.81, 4.45, 0.52, 1.41, 1.4, 0.97, 2.27, 3.05,
  0.66, 15.33, 0.36, 8.64, 3.07, 2.65, 1.94, 1.18, 1.38, 2.38, 1.63, 2.27, 0.53,
  0.14, 8.23, 2.2, 1.69, 3.06, 3.48, 1.19, 0.97, 1.36, 0.72, 2.36, 3.2, 1.4, 1.68, 
  1.51, 2.93, 3.17, 3.44, 0.53, 1.12, 3.1, 1.7, 0.39, 1.51, 14.75, 8.98, 1.74, 0.45, 
  8.66, 1.12, 6.44, 2.66, 0.39, 1.88, 1.71, 4.51, 0.26, 6.88, 20.34, 0.66, 1.25,
  0.52, 8.44, 6.94, 20.1, 23.1, 0.66, 3.44, 2.36, 0.36, 1.69, 6.78, 1.94, 2.93, 1.25,
  0.66]
,[2.03, 8.54, 6.51, 7.01, 10.25, 7.3, 0.99, 1.65, 3.8, 9.74, 4.02, 3.1, 8.67, 10.99,
  5.44, 0.43, 2.37, 2.6, 5.66, 11.62, 5.59, 3.63, 2.03, 5.62, 4.16, 3.69, 4.08, 3.63, 
  1.65, 6.59, 4.08, 0.52, 1.72, 4.47, 1.76, 2.06, 4.15, 2.6, 2.47, 1.08, 2.79, 0.7,
  10.25, 0.56, 2.0, 4.99, 4.16, 1.15, 0.71, 5.66, 2.47, 5.21, 3.62, 2.35, 0.13, 0.56,
  7.3, 2.14, 2.37, 4.23, 3.93, 0.43, 0.13, 1.42, 6.42, 0.06, 1.79, 3.47, 5.23, 5.21, 
  3.77, 6.51, 4.82, 0.28, 1.19, 0.22, 2.21, 2.14, 1.15, 1.8, 1.76, 2.25, 0.22, 0.61,
  0.06, 1.08, 1.3, 5.59, 3.62, 1.76, 8.54, 5.44, 1.72, 3.1, 2.57, 2.81, 0.71, 0.9, 
  3.47, 1.8, 0.63, 1.01, 4.14, 0.42, 2.21, 6.42, 4.47, 0.62, 1.08, 0.19, 0.99, 1.94, 
  1.36, 1.42, 0.61, 1.13, 3.69, 1.79, 6.59, 3.65, 0.09, 0.42, 2.57, 0.37, 1.3, 2.79,
  2.35, 1.46, 0.83, 1.19, 1.36, 3.82, 0.56, 1.94, 3.8, 4.14, 0.83, 0.52, 3.65, 1.76, 
  0.56, 0.9, 4.23, 0.19, 8.67, 0.7, 1.01, 2.25, 0.09, 1.13, 4.08, 0.28, 7.01, 4.02,
  4.15, 0.37, 0.63, 3.77, 10.99, 4.08, 1.46, 1.66, 4.99, 2.81, 0.62, 1.08, 3.93, 4.82,
  2.0, 5.62, 1.66, 9.74, 3.82, 2.06, 11.62, 5.23]
,[9.83, 15.87, 1.3, 5.5, 2.68, 7.52, 0.58, 8.52, 0.62, 1.17, 1.0, 7.61, 1.73, 1.41, 
  1.58, 4.06, 2.39, 4.51, 1.3, 3.05, 4.83, 4.9, 4.49, 0.82, 1.73, 2.28, 0.62, 3.58, 
  0.8, 1.41, 0.76, 1.17, 1.14, 2.14, 8.51, 1.36, 0.58, 3.68, 5.74, 1.58, 3.09, 4.28,
  5.41, 0.82, 1.46, 4.51, 3.05, 4.51, 4.05, 1.45, 2.14, 2.28, 4.83, 1.36, 9.83, 1.0,
  2.39, 2.68, 1.58, 0.44, 0.8, 3.68, 8.52, 0.72, 1.21, 4.06, 1.14, 5.5, 4.28, 2.24,
  15.87, 4.9, 7.61, 2.28, 2.24, 1.46, 0.76, 4.49, 1.45, 1.21, 7.52, 5.74, 0.72, 2.28, 
  0.44, 1.32, 4.05, 3.58, 5.41, 1.58, 1.32, 4.51, 8.51, 3.09]
,[8.5, 5.86, 13.52, 0.91, 18.63, 18.79, 5.73, 1.88, 2.87, 3.69, 0.91, 5.78, 7.17, 
  0.82, 5.93, 0.46, 1.25, 0.82, 0.27, 1.4, 5.18, 2.29, 0.3, 0.46, 8.5, 2.45, 0.8, 
  2.43, 1.25, 1.1, 2.87, 0.27, 13.52, 4.51, 0.8, 5.78, 5.18, 1.4, 0.3, 2.06, 1.1, 
  1.88, 5.86, 3.69, 2.06, 2.43, 18.79, 2.45, 18.63, 4.51, 2.29, 5.93, 5.73, 7.17]
,[0.35, 3.87, 0.35, 3.84, 5.33, 2.35, 7.08, 4.85, 1.37, 3.84, 2.35, 3.84, 1.37, 2.5,
  2.5, 3.87, 2.79, 7.08, 0.01, 0.45, 3.84, 0.01, 2.79, 4.85, 0.45, 5.33]
,[7.41, 15.43, 7.93, 1.57, 3.65, 9.4, 11.15, 7.93, 1.57, 1.06, 3.76, 3.3, 9.4, 4.67,
  0.17, 7.41, 3.76, 3.65, 15.43, 0.17, 1.06, 3.3, 11.15, 4.67]
,[2.66, 2.66]
,[5.51, 5.3, 5.3, 5.51]]

ans = 0
for i in score:
    ans += len(i)
print(ans)

#760 / 20 => 38 
#한팀당 38경기 하므로 정리가 맞게 나옴

#또한 A VS B 에 대한 정보는 A팀 , B팀 정보 모두에 존재하므로 모든 결과는 2번 중복되어 등장
#감안해서 살펴보아야 함
760
In [4]:
t = 0
for i in score:
    print(t,int(len(i)/2))
    t += 1

#8,9점이 나온 경기 수가 1경기 , 2경기 밖에 없다.
0 30
1 71
2 89
3 88
4 47
5 27
6 13
7 12
8 1
9 2
In [5]:
import pandas as pd

means = []
df_score = pd.DataFrame([i for i in score])
df_score
Out[5]:
0 1 2 3 4 5 6 7 8 9 ... 168 169 170 171 172 173 174 175 176 177
0 2.93 2.55 6.35 0.81 1.43 1.83 2.93 0.17 1.83 9.17 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 5.44 16.80 15.34 4.61 9.63 4.32 2.97 6.41 4.64 7.54 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 8.64 3.74 5.44 14.75 8.63 18.99 23.10 20.34 2.39 1.77 ... 0.66 3.44 2.36 0.36 1.69 6.78 1.94 2.93 1.25 0.66
3 2.03 8.54 6.51 7.01 10.25 7.30 0.99 1.65 3.80 9.74 ... 2.00 5.62 1.66 9.74 3.82 2.06 11.62 5.23 NaN NaN
4 9.83 15.87 1.30 5.50 2.68 7.52 0.58 8.52 0.62 1.17 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 8.50 5.86 13.52 0.91 18.63 18.79 5.73 1.88 2.87 3.69 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 0.35 3.87 0.35 3.84 5.33 2.35 7.08 4.85 1.37 3.84 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 7.41 15.43 7.93 1.57 3.65 9.40 11.15 7.93 1.57 1.06 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 2.66 2.66 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 5.51 5.30 5.30 5.51 NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

10 rows × 178 columns

In [6]:
#각 경기에서 발생한 점수 별로 확인한 배당 차이 평균

df_mean = pd.DataFrame(df_score.mean(axis=1) , columns=['per'])
df_mean.columns = ["per"]
print(df_mean)
        per
0  2.086667
1  2.971268
2  4.212472
3  3.099318
4  3.404255
5  4.614074
6  2.971538
7  5.791667
8  2.660000
9  5.405000
In [7]:
#각 경기에서 발생한 점수 별로 확인한 배당 차이 중앙값
import pandas as pd
df_meanE = pd.DataFrame(df_score.median(axis=1) , columns=['per'])
df_meanE.columns = ["per"]
print(df_meanE)
     per
0  1.630
1  2.020
2  2.380
3  2.300
4  2.280
5  2.450
6  2.790
7  4.215
8  2.660
9  5.405
In [8]:
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib notebook

sns.barplot(x=df_mean.index, y=df_mean["per"])
plt.show()
In [9]:
sns.barplot(x=df_meanE.index, y=df_meanE["per"])
plt.show()
In [10]:
df_score
Out[10]:
0 1 2 3 4 5 6 7 8 9 ... 168 169 170 171 172 173 174 175 176 177
0 2.93 2.55 6.35 0.81 1.43 1.83 2.93 0.17 1.83 9.17 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 5.44 16.80 15.34 4.61 9.63 4.32 2.97 6.41 4.64 7.54 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 8.64 3.74 5.44 14.75 8.63 18.99 23.10 20.34 2.39 1.77 ... 0.66 3.44 2.36 0.36 1.69 6.78 1.94 2.93 1.25 0.66
3 2.03 8.54 6.51 7.01 10.25 7.30 0.99 1.65 3.80 9.74 ... 2.00 5.62 1.66 9.74 3.82 2.06 11.62 5.23 NaN NaN
4 9.83 15.87 1.30 5.50 2.68 7.52 0.58 8.52 0.62 1.17 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 8.50 5.86 13.52 0.91 18.63 18.79 5.73 1.88 2.87 3.69 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 0.35 3.87 0.35 3.84 5.33 2.35 7.08 4.85 1.37 3.84 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 7.41 15.43 7.93 1.57 3.65 9.40 11.15 7.93 1.57 1.06 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 2.66 2.66 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 5.51 5.30 5.30 5.51 NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

10 rows × 178 columns

In [11]:
df_score.loc[0]

plt.yticks([0,1,2,3,4,5,6,7,8,9])
for i in range(0,10):
    sns.scatterplot(y=i, x=df_score.loc[i])
In [12]:
import copy

#pers 라는 배열에 round 배당 percentage가 index , 내용은 점수차
pers = [[] for i in range(0,30)]
score_round = copy.deepcopy(score)
for i in range(0,len(score_round)):
    for t in range(0,len(score_round[i])):
        k = round(score_round[i][t],0)
        score_round[i][t] = k
        pers[int(k)].append(i)

df_round = pd.DataFrame([i for i in score_round])
df_round
Out[12]:
0 1 2 3 4 5 6 7 8 9 ... 168 169 170 171 172 173 174 175 176 177
0 3.0 3.0 6.0 1.0 1.0 2.0 3.0 0.0 2.0 9.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 5.0 17.0 15.0 5.0 10.0 4.0 3.0 6.0 5.0 8.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 9.0 4.0 5.0 15.0 9.0 19.0 23.0 20.0 2.0 2.0 ... 1.0 3.0 2.0 0.0 2.0 7.0 2.0 3.0 1.0 1.0
3 2.0 9.0 7.0 7.0 10.0 7.0 1.0 2.0 4.0 10.0 ... 2.0 6.0 2.0 10.0 4.0 2.0 12.0 5.0 NaN NaN
4 10.0 16.0 1.0 6.0 3.0 8.0 1.0 9.0 1.0 1.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 8.0 6.0 14.0 1.0 19.0 19.0 6.0 2.0 3.0 4.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 0.0 4.0 0.0 4.0 5.0 2.0 7.0 5.0 1.0 4.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 7.0 15.0 8.0 2.0 4.0 9.0 11.0 8.0 2.0 1.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 3.0 3.0 NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 6.0 5.0 5.0 6.0 NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

10 rows × 178 columns

In [13]:
ans = 0
for i in pers:
    ans += len(i)
print(ans)
#760으로 전체 경우 확인
760
In [14]:
over_2 = [[0,0] for i in range(0,30)]
over_3 = [[0,0] for i in range(0,30)]
over_4 = [[0,0] for i in range(0,30)]

for i in range(0,len(pers)):
    for t in range(0,len(pers[i])):
        if pers[i][t] > 2:
            over_2[i][0] += 1
        else:
            over_2[i][1] += 1
            
        if pers[i][t] > 3:
            over_3[i][0] += 1
        else:
            over_3[i][1] += 1
            
        if pers[i][t] > 4:
            over_4[i][0] += 1
        else:
            over_4[i][1] += 1
            
for i in over_2:
    i[0] = int(i[0]/2)
    i[1] = int(i[1]/2)
    
for i in over_3:
    i[0] = int(i[0]/2)
    i[1] = int(i[1]/2)
    
for i in over_4:
    i[0] = int(i[0]/2)
    i[1] = int(i[1]/2)
    
            
print(over_2)
print("======")
print(over_3)
print("======")
print(over_4)
            
[[17, 19], [45, 52], [33, 40], [13, 21], [28, 13], [16, 14], [11, 5], [7, 5], [4, 4], [5, 7], [3, 1], [2, 0], [1, 1], [0, 0], [1, 0], [1, 3], [1, 0], [0, 1], [0, 0], [2, 1], [0, 2], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
======
[[8, 28], [24, 73], [16, 57], [7, 27], [12, 29], [11, 19], [7, 9], [3, 9], [4, 4], [3, 9], [1, 3], [1, 1], [0, 2], [0, 0], [1, 0], [1, 3], [1, 0], [0, 1], [0, 0], [2, 1], [0, 2], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
======
[[7, 29], [8, 89], [8, 65], [4, 30], [6, 35], [6, 24], [5, 11], [3, 9], [2, 6], [1, 11], [0, 4], [1, 1], [0, 2], [0, 0], [1, 0], [1, 3], [0, 1], [0, 1], [0, 0], [2, 1], [0, 2], [0, 0], [0, 0], [0, 1], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
In [15]:
over_2_per = [0 for i in range(0,30)]
over_3_per = [0 for i in range(0,30)]
over_4_per = [0 for i in range(0,30)]

k = 0
for i in over_2:
    if i[0] != 0 or i[1] != 0:
        over_2_per[k] = round(100*i[0]/(i[0] + i[1]),0)
    k += 1
        
k = 0
for i in over_3:
    if i[0] != 0 or i[1] != 0:
        over_3_per[k] = round(100*i[0]/(i[0] + i[1]),0)
    k += 1
        
k = 0
for i in over_4:
    if i[0] != 0 or i[1] != 0:
        over_4_per[k] = round(100*i[0]/(i[0] + i[1]),0)
    k += 1
        
print(over_2_per)
print("---")
print(over_3_per)
print("---")
print(over_4_per)
    
[47.0, 46.0, 45.0, 38.0, 68.0, 53.0, 69.0, 58.0, 50.0, 42.0, 75.0, 100.0, 50.0, 0, 100.0, 25.0, 100.0, 0.0, 0, 67.0, 0.0, 0, 0, 0.0, 0, 0, 0, 0, 0, 0]
---
[22.0, 25.0, 22.0, 21.0, 29.0, 37.0, 44.0, 25.0, 50.0, 25.0, 25.0, 50.0, 0.0, 0, 100.0, 25.0, 100.0, 0.0, 0, 67.0, 0.0, 0, 0, 0.0, 0, 0, 0, 0, 0, 0]
---
[19.0, 8.0, 11.0, 12.0, 15.0, 20.0, 31.0, 25.0, 25.0, 8.0, 0.0, 50.0, 0.0, 0, 100.0, 25.0, 0.0, 0.0, 0, 67.0, 0.0, 0, 0, 0.0, 0, 0, 0, 0, 0, 0]
In [16]:
df_over = pd.DataFrame({"OVER_2":over_2_per[0:11]
                       ,"OVER_3":over_3_per[0:11],
                       "OVER_4":over_4_per[0:11]})
df_over
Out[16]:
OVER_2 OVER_3 OVER_4
0 47.0 22.0 19.0
1 46.0 25.0 8.0
2 45.0 22.0 11.0
3 38.0 21.0 12.0
4 68.0 29.0 15.0
5 53.0 37.0 20.0
6 69.0 44.0 31.0
7 58.0 25.0 25.0
8 50.0 50.0 25.0
9 42.0 25.0 8.0
10 75.0 25.0 0.0
In [29]:
p = sns.barplot(
    data= df_over,
    x= df_over.index,
    y= "OVER_2"
)

p.set_xlabel("배당차이 반올림", fontsize = 15)
p.set_ylabel("Over 2 될 %", fontsize = 15)

plt.show()

#표본수를 생각해 배당차이가 10 나는 경우까지 확인
In [32]:
p = sns.barplot(
    data= df_over,
    x= df_over.index,
    y= "OVER_3"
)

p.set_xlabel("배당차이 반올림", fontsize = 15)
p.set_ylabel("Over 3 될 %", fontsize = 15)

plt.show()
In [31]:
p = sns.barplot(
    data= df_over,
    x= df_over.index,
    y= "OVER_4"
)

p.set_xlabel("배당차이 반올림", fontsize = 15)
p.set_ylabel("Over 4 될 %", fontsize = 15)

plt.show()