HOWTO · Pandas
Converti oggetto in float in Pandas
Questo tutorial mostra come convertire una colonna di tipo oggetto in float di un dataframe pandas
In questa pagina
In questo tutorial, ci concentreremo sulla conversione di una colonna di tipo oggetto in float in Pandas. Una colonna di tipo oggetto contiene una stringa o una combinazione di altri tipi, mentre float contiene valori decimali. Lavoreremo sul seguente DataFrame in questo articolo.
import pandas as pd
df = pd.DataFrame(
[["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
columns=["a", "b", "c", "d"],
)
print(df)
print("---------------------------")
print(df.info())
Produzione:
a b c d
0 10.0 6 7 8
1 1.0 9 12 14
2 5.0 8 10 6
---------------------------
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 a 3 non-null object
1 b 3 non-null int64
2 c 3 non-null int64
3 d 3 non-null int64
dtypes: int64(3), object(1)
memory usage: 224.0+ bytes
None
Notare il tipo di colonna 'a', che è del tipo object. Convertiremo questo oggetto in float usando le funzioni pd.to_numeric() e astype() in Pandas.
convert_objects() che è deprecata e rimossa.Usa il metodo astype() per convertire un oggetto in float in Pandas
I pandas forniscono il metodo astype() per convertire una colonna in un tipo specifico. Passiamo float al metodo e impostiamo il parametro errors come 'raise', il che significa che solleverà eccezioni per valori non validi. Esempio:
import pandas as pd
df = pd.DataFrame(
[["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
columns=["a", "b", "c", "d"],
)
df["a"] = df["a"].astype(float, errors="raise")
print(df.info())
Produzione:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
a 3 non-null float64
b 3 non-null int64
c 3 non-null int64
d 3 non-null int64
dtypes: float64(1), int64(3)
memory usage: 224.0 bytes
Usa la funzione to_numeric() per convertire un oggetto in virgola mobile in Pandas
La funzione Pandas to_numeric() può essere utilizzata per convertire una lista, una serie, un array o una tupla in un tipo di dati numerico, che significa int e float con segno o senza segno. Ha anche il parametro errors per sollevare eccezioni. Di seguito è mostrato un esempio di conversione del tipo di oggetto in float utilizzando to_numeric():
import pandas as pd
df = pd.DataFrame(
[["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
columns=["a", "b", "c", "d"],
)
df["a"] = pd.to_numeric(df["a"], errors="coerce")
print(df.info())
Produzione:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
a 3 non-null float64
b 3 non-null int64
c 3 non-null int64
d 3 non-null int64
dtypes: float64(1), int64(3)
memory usage: 224.0 bytes