# This Python 3 environment comes with many helpful analytics libraries installed
# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python
# For example, here's several helpful packages to load

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)

# Input data files are available in the read-only "../input/" directory
# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory

import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using "Save & Run All" 
# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session
import os
from datetime import datetime
import glob
import seaborn as sns
import matplotlib.pyplot as plt
condition = pd.DataFrame()
for file in glob.glob("../input/the-depression-dataset/data/condition/*.csv"):
    df_read = pd.read_csv(file)
    df_read['Number'] = file[47:63]
    condition = condition.append(df_read,ignore_index=True)
control = pd.DataFrame()
for file in glob.glob('../input/the-depression-dataset/data/control/*.csv'):
    df_read = pd.read_csv(file)
    df_read['Number'] = file[45:63]
    control = control.append(df_read,ignore_index=True)
control.head()
condition.head()
condition.loc[ condition['Number'] == 'condition_1.csv', 'Number'] = 'condition_1'
condition.loc[ condition['Number'] == 'condition_2.csv', 'Number'] = 'condition_2'
condition.loc[ condition['Number'] == 'condition_3.csv', 'Number'] = 'condition_3'
condition.loc[ condition['Number'] == 'condition_4.csv', 'Number'] = 'condition_4'
condition.loc[ condition['Number'] == 'condition_5.csv', 'Number'] = 'condition_5'
condition.loc[ condition['Number'] == 'condition_6.csv', 'Number'] = 'condition_6'
condition.loc[ condition['Number'] == 'condition_7.csv', 'Number'] = 'condition_7'
condition.loc[ condition['Number'] == 'condition_8.csv', 'Number'] = 'condition_8'
condition.loc[ condition['Number'] == 'condition_9.csv', 'Number'] = 'condition_9'
condition.loc[ condition['Number'] == 'condition_10.csv', 'Number'] = 'condition_10'
condition.loc[ condition['Number'] == 'condition_11.csv', 'Number'] = 'condition_11'
condition.loc[ condition['Number'] == 'condition_12.csv', 'Number'] = 'condition_12'
condition.loc[ condition['Number'] == 'condition_13.csv', 'Number'] = 'condition_13'
condition.loc[ condition['Number'] == 'condition_14.csv', 'Number'] = 'condition_14'
condition.loc[ condition['Number'] == 'condition_15.csv', 'Number'] = 'condition_15'
condition.loc[ condition['Number'] == 'condition_16.csv', 'Number'] = 'condition_16'
condition.loc[ condition['Number'] == 'condition_17.csv', 'Number'] = 'condition_17'
condition.loc[ condition['Number'] == 'condition_18.csv', 'Number'] = 'condition_18'
condition.loc[ condition['Number'] == 'condition_19.csv', 'Number'] = 'condition_19'
condition.loc[ condition['Number'] == 'condition_20.csv', 'Number'] = 'condition_20'
condition.loc[ condition['Number'] == 'condition_21.csv', 'Number'] = 'condition_21'
condition.loc[ condition['Number'] == 'condition_22.csv', 'Number'] = 'condition_22'
condition.loc[ condition['Number'] == 'condition_23.csv', 'Number'] = 'condition_23'

control.loc[ control['Number'] == 'control_1.csv', 'Number'] = 'control_1'
control.loc[ control['Number'] == 'control_2.csv', 'Number'] = 'control_2'
control.loc[ control['Number'] == 'control_3.csv', 'Number'] = 'control_3'
control.loc[ control['Number'] == 'control_4.csv', 'Number'] = 'control_4'
control.loc[ control['Number'] == 'control_5.csv', 'Number'] = 'control_5'
control.loc[ control['Number'] == 'control_6.csv', 'Number'] = 'control_6'
control.loc[ control['Number'] == 'control_7.csv', 'Number'] = 'control_7'
control.loc[ control['Number'] == 'control_8.csv', 'Number'] = 'control_8'
control.loc[ control['Number'] == 'control_9.csv', 'Number'] = 'control_9'
control.loc[ control['Number'] == 'control_10.csv', 'Number'] = 'control_10'
control.loc[ control['Number'] == 'control_11.csv', 'Number'] = 'control_11'
control.loc[ control['Number'] == 'control_12.csv', 'Number'] = 'control_12'
control.loc[ control['Number'] == 'control_13.csv', 'Number'] = 'control_13'
control.loc[ control['Number'] == 'control_14.csv', 'Number'] = 'control_14'
control.loc[ control['Number'] == 'control_15.csv', 'Number'] = 'control_15'
control.loc[ control['Number'] == 'control_16.csv', 'Number'] = 'control_16'
control.loc[ control['Number'] == 'control_17.csv', 'Number'] = 'control_17'
control.loc[ control['Number'] == 'control_18.csv', 'Number'] = 'control_18'
control.loc[ control['Number'] == 'control_19.csv', 'Number'] = 'control_19'
control.loc[ control['Number'] == 'control_20.csv', 'Number'] = 'control_20'
control.loc[ control['Number'] == 'control_21.csv', 'Number'] = 'control_21'
control.loc[ control['Number'] == 'control_22.csv', 'Number'] = 'control_22'
control.loc[ control['Number'] == 'control_23.csv', 'Number'] = 'control_23'
control.loc[ control['Number'] == 'control_24.csv', 'Number'] = 'control_24'
control.loc[ control['Number'] == 'control_25.csv', 'Number'] = 'control_25'
control.loc[ control['Number'] == 'control_26.csv', 'Number'] = 'control_26'
control.loc[ control['Number'] == 'control_27.csv', 'Number'] = 'control_27'
control.loc[ control['Number'] == 'control_28.csv', 'Number'] = 'control_28'
control.loc[ control['Number'] == 'control_29.csv', 'Number'] = 'control_29'
control.loc[ control['Number'] == 'control_30.csv', 'Number'] = 'control_30'
control.loc[ control['Number'] == 'control_31.csv', 'Number'] = 'control_31'
control.loc[ control['Number'] == 'control_32.csv', 'Number'] = 'control_32'
control.groupby(['Number']).activity.agg(["count", "median", "mean", "std", "max"])
condition.groupby(['Number']).activity.agg(["count", "median", "mean", "std", "max"]).sort_index(axis=1)
scores = pd.read_csv('../input/the-depression-dataset/data/scores.csv')
scores.rename({'number':'Number'},axis=1,inplace=True)
scores.head()
df = scores.merge(condition, on=['Number'], how='left')
df.tail(10)
df.head(60)
df.sort_values(by=['Number','date'])
control_graph_dataframe = control.groupby(['Number'])['activity'].agg(['mean','std','var','min','max']).sort_values(by='Number').sort_values(by='max')
sns.displot(data=control_graph_dataframe,x='mean',kde=True)
con1 = pd.read_csv('../input/the-depression-dataset/data/condition/condition_1.csv')
con1.head()
df.groupby('gender').activity.agg(['count','mean','std','var','min','max'])
df.head()
df.info()
count = 0
for i in df.columns:
    if df[i].isnull().sum() > 0:
        count = count +1
        print('{}: {} adet veri eksik. (% {})\n'.format(i, df[i].isnull().sum(),round(df[i].isnull().sum()/len(df),4)))
        
print("************************************ \n")
print('{} adet değişkende eksik değer var.'.format(count)) 
df.head()
"""
**Montgomery–Åsberg Depresyon Derecelendirme Ölçeği**

MADRS, antidepresan etkinlik denemelerinde en sık kullanılan sonuç ölçüsüdür ve son on yılda artan sıklıkta kullanılmıştır. Bu ölçeğin temel amacı, depresif semptomolojiyi, özellikle antidepresanlarla tedavi edilen hastalardaki değişiklikleri değerlendirmektir.

HAM-D17 somatik belirtilere yönelik maddeler içerirken, MADRS depresyonun psikolojik belirtilerine (örneğin, üzüntü, gerilim ve karamsar düşünceler) odaklanır.Bu ölçek klinisyen tarafından derecelendirilmiştir ve 10 maddeden oluşmaktadır; her madde 0-6 arasında derecelendirilir, bu da maksimum toplam 60 puanla sonuçlanır ve daha yüksek puanlar daha fazla depresif semptomolojinin göstergesidir.

MADRS puanlama yönergeleri, 0 ile 6 arasında değişen toplam puanın hastanın normal aralıkta olduğunu (depresyon olmadığını), 7 ile 19 arasında değişen bir puanın "hafif depresyon", 20 ile 34 arasında "orta depresyon" olduğunu gösterir. 35 ve üzeri puan “ağır depresyon”u, toplam 60 puan ve üzeri ise “çok şiddetli depresyon”u gösterir
"""
condition_scores_df = df.loc[df['Number'].str.startswith('cond')]
condition_scores_df['madrs'] = (df['madrs1'] + df['madrs2'])/2;
condition_scores_df.loc[(condition_scores_df['madrs'] >= 0) & (condition_scores_df['madrs'] <= 6),'madrs'] = 'Depresyon Yok'
condition_and_scores_dataframe.madrs.unique()