From b55666d2e2c71f2f577733c63f0058d9184355fd Mon Sep 17 00:00:00 2001
From: Legton <legton0@gmail.com>
Date: Mon, 18 Sep 2017 15:18:29 +0000
Subject: [PATCH] analise do tempo medio de graduacao

---
 script/analysis/degree_analysis.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/script/analysis/degree_analysis.py b/script/analysis/degree_analysis.py
index 3016a9e..4beb300 100644
--- a/script/analysis/degree_analysis.py
+++ b/script/analysis/degree_analysis.py
@@ -40,3 +40,25 @@ def total_evasion_rate(df):
     total_evasion = df.loc[(df['FORMA_EVASAO']!=('Sem evasão')) & (df['FORMA_EVASAO']!=('Formatura')) & (df['FORMA_EVASAO']!=('Reintegração'))].shape[0]
 
     return total_evasion / total_student
+
+def average_graduation_time(df):
+    graduates = df.loc[(df.FORMA_EVASAO == ('Formatura'))]
+    total_graduate = graduates.shape[0]
+    average_time = 0
+    for index, row in graduates.iterrows():
+        year_end = 2016
+        semester_end = 2
+        if pd.notnull(row['PERIODO_EVASAO']):
+            year_end = int(row['PERIODO_EVASAO'][:4])
+            try: 
+                semester_end = int(row['PERIODO_EVASAO'][5])
+            except ValueError:
+                semester_end = 2
+        year = int(row['PERIODO_INGRESSO'][:4])
+        semester = int(row['PERIODO_INGRESSO'][5])
+        difference = 2 * (year_end - year) + (semester_end - semester) + 1
+        average_time += difference
+    average_time /= total_graduate
+    average_time /= 2
+    
+    return average_time
\ No newline at end of file
-- 
GitLab