-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathesercizio_boston.py
More file actions
58 lines (36 loc) · 2.14 KB
/
esercizio_boston.py
File metadata and controls
58 lines (36 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import pandas as pd
import numpy as np
BASE_URL = "https://raw.githubusercontent.com/ProfAI/machine-learning-fondamenti/main/datasets/"
def verfica_righe_colonne(DataFrame) -> None:
righe, colonne = DataFrame.shape
print(f"Il DataFrame ha {righe} righe e {colonne} colonne")
DataFrame.describe() ##describe restituisce un DataFrame con le statistiche descrittive per ogni colonna numerica del DataFrame originale
DataFrame.info() ##info restituisce un riepilogo conciso del DataFrame, inclusi il numero di valori non nulli e il tipo di dati per ogni colonna
## DataFrame[nome colonna].value_counts() ##value_counts conta il numero di occorrenze di ogni valore in una colonna specifica del DataFrame
def pulizia_dati(DataFrame) -> None:
print("i valori nulli sono: \n" + str(DataFrame.isnull().sum())) ##isnull() restituisce un DataFrame booleano con True per i valori nulli e False per i valori non nulli, sum() conta il numero di valori nulli per ogni colonna
DataFrame.dropna(thresh = 0.7 * DataFrame.shape[0], axis=1) ##elimina le colonne che hanno più del 30% di valori nulli
DataFrame.dropna(thresh = 0.85 * DataFrame.shape[1], axis=0)
DataFrame.dropna(subset=["PRICE"]) ##elimina le righe che hanno valori nulli nella colonna PRICE
return DataFrame
def valori_medi(DataFrame) -> None:
for column in DataFrame.columns:
mean = round(DataFrame[column].mean(), 1)
DataFrame[column].fillna(mean) ##fillna sostituisce
return DataFrame
def codifica(DataFrame) -> None:
size_mapping = {} ##immettere i valori da codificare
DataFrame[""] = DataFrame[""].map(size_mapping)
def moda(DataFrame) -> None:
return DataFrame
def distribuzione(DataFrame) -> None:
print(DataFrame["CHAS"].value_counts()) ##value_counts conta il numero di occorrenze di ogni valore nella colonna CHAS
if __name__ == "__main__":
df = pd.read_csv(BASE_URL + "boston.csv", index_col=0)
print("inizio")
verfica_righe_colonne(df)
print("inizio pulizia dati")
df = pulizia_dati(df)
print ("sostituzione coi valori medi: ")
df = valori_medi(df)
verfica_righe_colonne(df)