Cómo convertir un float en un entero en Pandas DataFrame
-
astype(int)
para convertirfloat
enint
en Pandas -
to_numeric()
Método para convertirfloat
aint
en Pandas
Demostraremos métodos para convertir un float en un entero en un Pandas DataFrame
- astype(int)
y to_numeric()
métodos.
Primero, creamos un array aleatorio usando una librería NumPy
y luego lo convertimos en DataFrame
.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5, 5) * 5)
print(df)
Si ejecutas este código obtendrás la siguiente salida que tiene valores en float
.
0 1 2 3 4
00.3024483.5519583.8786602.3803524.741592
14.0541870.9409520.4590584.3148010.524993
22.8917334.9268854.9557732.6263734.144166
31.1276393.1968234.1440201.3506320.401138
41.4235372.0194553.0389450.4366573.823888
astype(int)
para convertir float
en int
en Pandas
Para convertir float
en int
usaremos el método astype(int)
proporcionado por el paquete Pandas
. El código es,
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5, 5) * 5)
print("*********** Random Float DataFrame ************")
print(df)
print("***********************************************")
print("***********************************************")
print("*********** Dataframe Converted into INT ************")
print(df.astype(int))
print("***********************************************")
print("***********************************************")
Después de ejecutar los códigos anteriores obtendremos la siguiente salida.
*********** Random Float DataFrame ************
0 1 2 3 4
01.5106181.0945614.1574194.4241954.872719
10.4576804.0029592.6609991.6869160.840159
21.7817783.8129240.5618270.5323280.752800
31.4565142.7749552.7001184.5033544.749377
42.2235204.8592380.4509773.2284442.541648
***********************************************
***********************************************
*********** Dataframe Converted into INT ************
01234
011444
104210
213000
312244
424032
***********************************************
***********************************************
Podemos redondear el valor de float
a int
usando f.round(0).astype(int)
.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5, 5) * 5)
print("*********** Random Float DataFrame ************")
print(df)
print("***********************************************")
print("***********************************************")
print("*********** Dataframe Converted into INT ************")
print(df.astype(int))
print("***********************************************")
print("***********************************************")
print("*********** Rounding Float value to INT ************")
print(df.round(0).astype(int))
print("***********************************************")
print("***********************************************")
Después de ejecutar el código obtendremos la siguiente salida.
*********** Random Float DataFrame ************
0 1 2 3 4
03.3944580.0712023.3132054.7858780.705612
11.9603530.8420851.2123320.8183432.637940
24.4078114.2390781.4190271.5263101.043394
33.6542164.6729721.7964393.1684260.734009
40.8487961.0240521.8593190.8443781.747628
***********************************************
***********************************************
*********** Dataframe Converted into INT ************
01234
030340
110102
244111
334130
401101
***********************************************
***********************************************
*********** Rounding Float value to INT ************
01234
030351
121113
244121
345231
411212
***********************************************
***********************************************
to_numeric()
Método para convertir float
a int
en Pandas
Este método ofrece la funcionalidad de convertir con seguridad los tipos no numéricos (por ejemplo, las cadenas) en un tipo numérico adecuado.
s = pd.Series(["1.0", "2", -3])
print(pd.to_numeric(s, downcast="integer"))
Después de ejecutar el código obtendremos la siguiente salida.
01
12
2 -3
dtype: int8