<jupyter_start><jupyter_text>*Importiamo le librerie necessarie*<jupyter_code>#Librerie DS
import numpy as np
import pandas as pd

#Librerie proprie
from Import_e_info import *
from Trattamento_dati_mancanti import *<jupyter_output><empty_output><jupyter_text>**Caricamento**<jupyter_code>dataset = caricamento_dataset("../Datasets/adult.data")
dataset<jupyter_output><empty_output><jupyter_text>Osserviamo l'associazione delle variabili al target<jupyter_code>test_chiquadro(dataset,dataset.Reddito, [dataset.Tipo_lavoro, dataset.Occupazione, dataset.Paese_nativo],
              index = ["Tipo_lavoro","Occupazione", "Paese_nativo"])<jupyter_output><empty_output><jupyter_text>Sono tutte significativamente dipendenti per un livello dello 0.05, per cui procediamo all'imputazione  *Tipo_lavoro* Procediamo ad un'imputazione proporzionale dei missing values<jupyter_code>print("""Il numero di osservazioni per cui non conosciamo il tipo di lavoro praticato è pari a {:.3f}"""\
      .format(len(dataset[dataset.Tipo_lavoro.isna()]["Reddito"])/len(dataset)))
dataset[dataset.Tipo_lavoro.isna()]["Reddito"].value_counts()<jupyter_output><empty_output><jupyter_text>*Il valore percentuale delle osservazioni per cui non conosciamo la categoria del tipo di lavoro è moltosimile al tasso di disoccupazione americano del 1994. Data che l'alta quantità di tali osservazioni presenta un reddito minore di 50k, l'idea è sostituire a tali osservazione la condizione di disoccupati*<jupyter_code>dataset[dataset.Tipo_lavoro.isna()] = dataset.fillna({"Tipo_lavoro": " Non occupied"})<jupyter_output><empty_output><jupyter_text>Occupazione *Potrebbe darci le stesse informazioni della variabile "Tipo_lavoro", per cui prima di procedere facciamo un test del chi2*<jupyter_code>associazione_tipo_occ = test_chiquadro(dataset, dataset.Tipo_lavoro, [dataset.Occupazione], 
                                       index = ["occupazione"] )
associazione_tipo_occ<jupyter_output><empty_output><jupyter_text>*Dato il p-value pari a 0.0 possiamo afferamre che le due variabili siano associate per cui possiamo eliminare la variabile Occupazione*<jupyter_code>dataset.drop("Occupazione", axis = 1, inplace = True)<jupyter_output><empty_output><jupyter_text>*Paese_Nativo*<jupyter_code>dataset.Paese_nativo.value_counts()<jupyter_output><empty_output><jupyter_text>E' possibile notare:* Una grossa quantità di categorie * Una disparità tra la categoria US e le altre  Giungiamo alla conclusione di creare soli due categorie: United States e no United States<jupyter_code>#Creiamo una lista di valori 
Paese_Nativo = []
for i in range(len(dataset)):
    if dataset["Paese_nativo"][i] == " United-States":
        Paese_Nativo.append(" United-States")
    elif dataset["Paese_nativo"].isna()[i]:
        Paese_Nativo.append(np.nan)
    else:
        Paese_Nativo.append(" No United-States")
#Aggiungiamo la lista di valori al dataset 
dataset["Paese_Nativo_cat"] = Paese_Nativo
#Cancelliamo quella precedente
dataset.drop("Paese_nativo",axis = 1, inplace = True)
#Imputiamo i dati mancanti allo stesso modo di quanto fatto prima 
dataset = imputazione_proporzionale(dataset, "Paese_Nativo_cat")
dataset.isna().sum() 
#Il dataset non ha più dati mancanti
#%cd ../Datasets
#dataset.to_csv("dataset_concat_disocc")<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09800965018094089, 'fraction_numerical': 0.004523522316043426, 'mean_word_length': 6.731934731934732, 'pattern_counts': {'":': 2, '<': 37, '<?xml version=': 0, '>': 37, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '9', 'dir': 'jupyter-structured-clean-dedup', 'id': '473592', 'license': 'Apache-2.0', 'n_tokens_mistral': 1197, 'n_tokens_neox': 1160, 'n_words': 262, 'path': 'Progetto_dataset_adult/02.Trattamento_dati_mancanti-Alternativo.ipynb', 'repo_name': 'pasqualefiore/Adult_dataset_analysis', 'size': '3316'}