In [1]:
"""
Importiamo anche la libreria
matplotlib che permette di graficare
i dati
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
In [3]:
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'
    
})
In [4]:
df
Out[4]:
A B C D E F G
0 7.0 32.0 379.0 1562 241 test foo
1 7.0 28.0 147.0 1907 2 train foo
2 9.0 93.0 109.0 1018 134 test foo
3 5.0 39.0 1200.0 1547 44 train foo
In [17]:
"""
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)
In [18]:
bins
Out[18]:
array([28.        , 49.66666667, 71.33333333, 93.        ])
In [19]:
"""
Costruiamo ora tre categorie e tre
colonne
"""
group_names=["Low","Medium","High"]
In [20]:
"""
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)
In [27]:
df
Out[27]:
A B C D E F G B_binned
0 7.0 32.0 379.0 1562 241 test foo Low
1 7.0 28.0 147.0 1907 2 train foo Low
2 9.0 93.0 109.0 1018 134 test foo High
3 5.0 39.0 1200.0 1547 44 train foo Low
In [31]:
"""
Facciamo un grafico a colonne
dei dati con colonne proporzionali
alla frequenza
"""

df.plot.hist(bins=5,alpha=0.5)
Out[31]:
<matplotlib.axes._subplots.AxesSubplot at 0x193ee648c88>
In [32]:
"""
Il grafico per la sola colonna "B"
"""
df.plot(kind='bar',y="B",x="B_binned")
Out[32]:
<matplotlib.axes._subplots.AxesSubplot at 0x193ee6c1548>
In [ ]: