Convertir un objeto en un float en Pandas
-
Usa el método
astype()
para convertir un objeto a flotante en Pandas -
Usar la función
to_numeric()
para convertir el objeto en flotante en Pandas
En este tutorial, nos centraremos en convertir una columna de tipo objeto para que flote en Pandas. Una columna de tipo objeto contiene una cadena o una mezcla de otros tipos, mientras que el float contiene valores decimales. Trabajaremos en el siguiente DataFrame en este artículo.
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())
Producción :
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
Fíjate en el tipo de columna 'a'
, que es del tipo object
. Convertiremos este objeto en flotante usando las funciones pd.to_numeric()
y astype()
en Pandas.
convert_objects()
que está desaprobada y eliminada.Usa el método astype()
para convertir un objeto a flotante en Pandas
Los pandas proporcionan el método astype()
para convertir una columna a un tipo específico. Pasamos float
al método y ponemos el parámetro errors
como 'raise'
, lo que significa que elevará las excepciones para los valores inválidos. Ejemplo:
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())
Producción :
<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
Usar la función to_numeric()
para convertir el objeto en flotante en Pandas
La función Pandas to_numeric()
puede utilizarse para convertir una lista, una serie, un array o una tupla a un tipo de datos numérico, lo que significa con signo, o sin signo, de tipo int y float. También tiene el parámetro errors
para plantear excepciones. A continuación se muestra un ejemplo de conversión del tipo de objeto a flotante usando 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())
Producción :
<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
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedInArtículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma