{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":71549,"databundleVersionId":8561470,"sourceType":"competition"}],"dockerImageVersionId":30698,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# packages\n\n# standard\nimport numpy as np\nimport pandas as pd\nimport os\nimport time\n\n# plots\nimport matplotlib.pyplot as plt\nimport plotly.express as px\nimport seaborn as sns\n\n# dicom\nimport pydicom as dicom\nfrom sklearn.model_selection import train_test_split\n","metadata":{"execution":{"iopub.status.busy":"2024-05-22T00:30:39.412555Z","iopub.execute_input":"2024-05-22T00:30:39.412924Z","iopub.status.idle":"2024-05-22T00:30:39.418907Z","shell.execute_reply.started":"2024-05-22T00:30:39.412897Z","shell.execute_reply":"2024-05-22T00:30:39.417707Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# read data\ndf_train_main = pd.read_csv('../input/rsna-2024-lumbar-spine-degenerative-classification/train.csv')\ndf_train_label = pd.read_csv('../input/rsna-2024-lumbar-spine-degenerative-classification/train_label_coordinates.csv')\ndf_train_desc = pd.read_csv('../input/rsna-2024-lumbar-spine-degenerative-classification/train_series_descriptions.csv')\ndf_test_desc = pd.read_csv('../input/rsna-2024-lumbar-spine-degenerative-classification/test_series_descriptions.csv')\ndf_sub = pd.read_csv('../input/rsna-2024-lumbar-spine-degenerative-classification/sample_submission.csv')","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-05-22T00:30:39.421066Z","iopub.execute_input":"2024-05-22T00:30:39.421409Z","iopub.status.idle":"2024-05-22T00:30:39.541183Z","shell.execute_reply.started":"2024-05-22T00:30:39.421371Z","shell.execute_reply":"2024-05-22T00:30:39.539851Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_sub","metadata":{"execution":{"iopub.status.busy":"2024-05-22T00:30:39.542828Z","iopub.execute_input":"2024-05-22T00:30:39.543289Z","iopub.status.idle":"2024-05-22T00:30:39.559115Z","shell.execute_reply.started":"2024-05-22T00:30:39.543248Z","shell.execute_reply":"2024-05-22T00:30:39.557992Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_train_main","metadata":{"execution":{"iopub.status.busy":"2024-05-22T00:30:39.561748Z","iopub.execute_input":"2024-05-22T00:30:39.562166Z","iopub.status.idle":"2024-05-22T00:30:39.594664Z","shell.execute_reply.started":"2024-05-22T00:30:39.562135Z","shell.execute_reply":"2024-05-22T00:30:39.593423Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Usando melt para transformar colunas em linhas\ndf_unpivoted = df_train_main.melt(id_vars='study_id', var_name='condition', value_name='status')\n\ndf_unpivoted","metadata":{"execution":{"iopub.status.busy":"2024-05-22T00:30:39.596302Z","iopub.execute_input":"2024-05-22T00:30:39.597230Z","iopub.status.idle":"2024-05-22T00:30:39.619435Z","shell.execute_reply.started":"2024-05-22T00:30:39.597188Z","shell.execute_reply":"2024-05-22T00:30:39.618283Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"frequency_table = df_unpivoted.groupby('condition')['status'].value_counts(normalize=True).unstack(fill_value=0)\n\n# Resetando o índice para que 'condition' seja uma coluna novamente\nfrequency_table = frequency_table.reset_index()\n\nfrequency_table.rename(columns={'Moderate': 'moderate', 'Normal/Mild': 'normal_mild', 'Severe': 'severe'}, inplace=True)\n\n\nfrequency_table","metadata":{"execution":{"iopub.status.busy":"2024-05-22T00:30:39.621330Z","iopub.execute_input":"2024-05-22T00:30:39.622375Z","iopub.status.idle":"2024-05-22T00:30:39.656700Z","shell.execute_reply.started":"2024-05-22T00:30:39.622330Z","shell.execute_reply":"2024-05-22T00:30:39.655585Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_sub['condition'] = df_sub['row_id'].str.extract(r'_(.*)')\ndf_sub","metadata":{"execution":{"iopub.status.busy":"2024-05-22T00:30:39.658196Z","iopub.execute_input":"2024-05-22T00:30:39.658660Z","iopub.status.idle":"2024-05-22T00:30:39.678060Z","shell.execute_reply.started":"2024-05-22T00:30:39.658623Z","shell.execute_reply":"2024-05-22T00:30:39.676844Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_sub = pd.merge(df_sub[['row_id', 'condition']],frequency_table, on='condition', how='inner')[['row_id', 'normal_mild', 'moderate', 'severe']]\ndf_sub","metadata":{"execution":{"iopub.status.busy":"2024-05-22T00:30:39.679154Z","iopub.execute_input":"2024-05-22T00:30:39.680021Z","iopub.status.idle":"2024-05-22T00:30:39.699913Z","shell.execute_reply.started":"2024-05-22T00:30:39.679988Z","shell.execute_reply":"2024-05-22T00:30:39.698611Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# save submission file\ndf_sub.to_csv('submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2024-05-22T00:30:39.702526Z","iopub.execute_input":"2024-05-22T00:30:39.702876Z","iopub.status.idle":"2024-05-22T00:30:39.713729Z","shell.execute_reply.started":"2024-05-22T00:30:39.702849Z","shell.execute_reply":"2024-05-22T00:30:39.712702Z"},"trusted":true},"execution_count":null,"outputs":[]}]}