Como Converter um Flutuador em um Inteiro em Pandas DataFrame

  1. astype(int) para converter float para int em Pandas
  2. Método to_numeric() para converter float em int 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

Artigo relacionado - Pandas DataFrame

  • Converter Objecto em Float em Pandas
  • Como contar a freqüência em que um valor ocorre em Pandas Dataframe