"""
Importiamo anche la libreria
matplotlib che permette di graficare
i dati
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df=pd.DataFrame({
'A': pd.Series( np.random.randint(10, size=4), dtype='float32'),
'B': pd.Series( np.random.randint(100, size=4), dtype='float32'),
'C':pd.Series( np.random.randint(2000, size=4), dtype='float32'),
'D':pd.Series( np.random.randint(2000, size=4), dtype='int32'),
'E':pd.Series( np.random.randint(300, size=4), dtype='int32'),
'F': pd.Categorical(["test", "train", "test", "train"]),
'G': 'foo'
})
df
"""
Trova il minimo e il massimo nella colonna "B"
La funzione linspace
Restituisce numeri equidistanti su un intervallo specificato.
Restituisce un numero di campioni distribuiti uniformemente, calcolati sull'intervallo [inizio, fine].
"""
"""
Quindi se si pone al posto del parametro 2, 4, si otterrà un
array di 4 numeri equispaziati uniformemente tra il minimo e il massimo
"""
bins=np.linspace(min(df["B"]),max(df["B"]),4)
bins
"""
Costruiamo ora tre categorie e tre
colonne
"""
group_names=["Low","Medium","High"]
"""
Costruiamo una nuova colonna che chiamiamo B_binned
dentro la quale saranno suddivisi i valori della colonna
"B" distribuiti nelle tre categorie "B_binned"
"""
df["B_binned"]=pd.cut(df["B"],bins,labels=group_names,include_lowest=True)
df
"""
Facciamo un grafico a colonne
dei dati con colonne proporzionali
alla frequenza
"""
df.plot.hist(bins=5,alpha=0.5)
"""
Il grafico per la sola colonna "B"
"""
df.plot(kind='bar',y="B",x="B_binned")