Comment convertir un float en un entier dans Pandas DataFrame

Asad Riaz 30 janvier 2023
  1. astype(int) pour convertir le float en int dans Pandas
  2. Méthode to_numeric() pour convertir le float en int dans Pandas
Comment convertir un float en un entier dans Pandas DataFrame

Nous allons démontrer des méthodes pour convertir un float en un entier dans un Pandas DataFrame - astype(int) et to_numeric().

Tout d’abord, nous créons un tableau aléatoire en utilisant une bibliothèque NumPy et ensuite nous le convertissons en DataFrame.

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(5, 5) * 5)
print(df)

Si vous exécutez ce code, vous obtiendrez la sortie suivante qui a des valeurs 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) pour convertir le float en int dans Pandas

Pour convertir float en int, nous utiliserons la méthode astype(int) fournie par le paquet Pandas. Le code est ,

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("***********************************************")

Après avoir exécuté les codes ci-dessus, nous obtiendrons le résultat suivant.

*********** 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
***********************************************
***********************************************

Nous pouvons arrondir la valeur float à int en utilisant 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("***********************************************")

Après avoir exécuté le code, nous obtiendrons la sortie suivante.

*********** 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
***********************************************
***********************************************

Méthode to_numeric() pour convertir le float en int dans Pandas

Cette méthode permet de convertir en toute sécurité des types non numériques (par exemple, des chaînes de caractères) en un type numérique approprié.

s = pd.Series(["1.0", "2", -3])
print(pd.to_numeric(s, downcast="integer"))

Après avoir exécuté le code, nous obtiendrons le résultat suivant.

01
12
2 -3
dtype: int8

Article connexe - Pandas DataFrame