Como Converter um Flutuador em um Inteiro em Pandas DataFrame
-
astype(int)
para converterfloat
paraint
em Pandas -
Método
to_numeric()
para converterfloat
emint
em Pandas
Demonstraremos métodos para converter uma margem flutuante em um número inteiro em um método Pandas DataFrame
- astype(int)
e to_numeric()
.
Primeiro, criamos uma array aleatória utilizando a biblioteca NumPy
e depois a convertemos em DataFrame
.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5, 5) * 5)
print(df)
Se você executar este código, você obterá a saída como segue, que tem valores do tipo 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 converter float
para int
em Pandas
Para converter float
em int
, poderíamos utilizar o método Pandas DataFrame.astype(int)
. O código é,
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("***********************************************")
Depois de executar os códigos acima, obteremos a seguinte saída.
*********** Random Float DataFrame ************
0 1 2 3 4
0 3.629665 2.552326 3.995622 3.155777 4.715785
1 1.597920 2.090324 0.511498 1.936061 1.286486
2 1.051634 3.550839 2.468125 4.213684 2.329477
3 3.443836 2.749433 1.560226 3.037708 2.966934
4 4.686530 2.096314 4.028526 4.253299 1.175233
***********************************************
***********************************************
*********** Dataframe Converted into INT ************
0 1 2 3 4
0 3 2 3 3 4
1 1 2 0 1 1
2 1 3 2 4 2
3 3 2 1 3 2
4 4 2 4 4 1
***********************************************
***********************************************
Ele converte todas as colunas Pandas DataFrame
para int
.
Converte a coluna DataFrame de Pandas para int
com arredondamento
Podemos arredondar o valor float
para int
utilizando df.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("***********************************************")
Depois de executar os códigos, obteremos a seguinte saída.
*********** Random Float DataFrame ************
0 1 2 3 4
0 4.888469 3.815177 3.993451 0.901108 1.958223
1 1.009212 1.532287 2.689159 1.008482 1.394623
2 4.152496 0.265261 4.667446 4.412533 4.797394
3 0.039770 1.526753 3.778224 0.073072 0.509409
4 1.292580 3.581438 0.759043 3.872206 2.591886
***********************************************
***********************************************
*********** Dataframe Converted into INT ************
0 1 2 3 4
0 4 3 3 0 1
1 1 1 2 1 1
2 4 0 4 4 4
3 0 1 3 0 0
4 1 3 0 3 2
***********************************************
***********************************************
*********** Rounding Float value to INT ************
0 1 2 3 4
0 5 4 4 1 2
1 1 2 3 1 1
2 4 0 5 4 5
3 0 2 4 0 1
4 1 4 1 4 3
***********************************************
***********************************************
O df.astype(int)
converte Pandas float
em int
, negligenciando todos os dígitos de ponto flutuante.
O df.round(0).astype(int)
arredonda o número de Pandas float
para mais próximo de zero.
Método to_numeric()
para converter float
em int
em Pandas
Este método oferece funcionalidade para converter com segurança tipos não-numéricos (por exemplo, strings) para um tipo numérico adequado.
s = pd.Series(["1.0", "2", -3])
print(pd.to_numeric(s, downcast="integer"))
Depois de executar os códigos, obteremos a seguinte saída.
01
12
2 -3
dtype: int8