diff --git a/script/analysis/course_analysis.py b/script/analysis/course_analysis.py
index 265bdb444773aa0459112b4607f7e5effedf3f5e..a0411b79415c5b031c285a9f43b99a42351f9019 100644
--- a/script/analysis/course_analysis.py
+++ b/script/analysis/course_analysis.py
@@ -1,10 +1,10 @@
 # -*- coding: utf-8 -*-
 import pandas as pd
+import json
 import numpy as np
-# import utils.situations
-
-df = pd.read_excel("../base/historico.xls")
+import utils.situations
 
+# df = pd.read_excel("../base/base-2016-1/historico.xls")
 # imprime completamente um dataframe
 
 
@@ -33,20 +33,58 @@ def analysis(df):
                              ).size().reset_index(name='counts')
     # adiciona mais uma coluna ao df disciplina com as taxas de cada valor de 'SIGLA'
     disciplina = disciplinas.groupby(['COD_ATIV_CURRIC', 'SIGLA', 'counts']).apply(
-        lambda x: func(x, matr)).reset_index(name='taxas gerais')
+        lambda x: func(x, qnt_matr)).reset_index(name='taxas gerais')
+    # print(disciplina)
     return disciplina
 # quantidade de vezes cursadas ate obter a aprovacao
 
 
 def qnt_aprov(df):
-    qnt = df.groupby(['COD_ATIV_CURRIC', 'MATR_ALUNO']).size()
-    print_analise(qnt)
+    qnt = df.groupby(['MATR_ALUNO', 'COD_ATIV_CURRIC']
+                     ).size().reset_index(name='qnt_aprov')
     return qnt
 
 
-matr = counts_matr(df)
-analysis(df)
-qnt_aprov(df)
+def matr_semestre(df):
+    return df.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO']).size()
+
+
+def func_semestre(x, matr):
+    # print (matr)
+    ano = int(x['ANO'])
+    # print(ano)
+    periodo = x['PERIODO'].values[0]
+    disciplina = x['COD_ATIV_CURRIC'].values[0]
+    c = matr[disciplina,periodo,ano]
+    # break
+    # print(x['PERIODO'])
+    # print("Disciplina: %s\nPeriodo:%s \nAno:%d"%(disciplina,periodo,ano))
+    # c = matr['CI056','2']
+    # print(c)
+    # print(disciplina)
+    # print("--------------------------------------------------------------------------")
+    return (x['counts_semestre'] / c)
+
+
+def analysis_semestre(df):
+    qnt_matr_semestre = matr_semestre(df)
+    discipline_semestre = df.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO', 'SIGLA']).size(
+    ).reset_index(name='counts_semestre')
+    discipline_semestre = discipline_semestre.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO', 'SIGLA']).apply(lambda x: func_semestre(x,
+                                                                                                        qnt_matr_semestre)).reset_index(name='taxas_semetrais')
+
+    return discipline_semestre
+def Main(df):
+    Analysis = analysis(df)
+    Analysis_semestre = analysis_semestre(df)
+    matr = counts_matr(df)
+    matr_semes = matr_semestre(df)
+    print_analise(merged)
+
+# main()
+# matr = counts_matr(df)
+# analysis(df)
+# qnt_aprov(df)
 
 #
 ##f = lambda x: x / c[x]
diff --git a/script/main.py b/script/main.py
index 979bc78769847a0948ea1ca4accf6fbe6b43ea6a..addbd1055924267ce8aae824d9f4d9583015acf2 100644
--- a/script/main.py
+++ b/script/main.py
@@ -3,6 +3,7 @@ import time
 from base.dataframe_base import load_dataframes
 from build_cache import build_cache
 from datetime import timedelta
+from utils.situations import *
 
 def main():
     start_time = time.clock()