Converti un Float in un Integer in Pandas DataFrame
-
astype(int)
per convertirefloat
inint
in Pandas -
Metodo
to_numeric()
per convertirefloat
inint
in Pandas
Mostreremo i metodi per convertire un float in un intero in un Pandas DataFrame
- metodi astype(int)
e to_numeric()
.
Per prima cosa creiamo un array casuale usando la libreria NumPy
e poi lo convertiamo in DataFrame
.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5, 5) * 5)
print(df)
Se esegui questo codice, otterrai l’output come segue che ha valori di 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)
per convertire float
in int
in Pandas
Per convertire float
in int
potremmo usare il metodo Pandas DataFrame.astype(int)
. Il codice è,
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("***********************************************")
Dopo aver eseguito i codici sopra, otterremo il seguente output.
*********** 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
***********************************************
***********************************************
Converte tutte le colonne DataFrame
di Pandas in int
.
Converti la colonna DataFrame di Pandas in int
con arrotondamento
Possiamo arrotondare il valore float
a int
usando 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("***********************************************")
Dopo aver eseguito i codici, otterremo il seguente output.
*********** 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
***********************************************
***********************************************
Il df.astype(int)
converte Pandas float
in int
trascurando tutte le cifre in virgola mobile.
df.round(0).astype(int)
arrotonda il numero float
di Pandas più vicino a zero.
Metodo to_numeric()
per convertire float
in int
in Pandas
Questo metodo fornisce funzionalità per convertire in modo sicuro i tipi non numerici (ad esempio stringhe) in un tipo numerico adatto.
s = pd.Series(["1.0", "2", -3])
print(pd.to_numeric(s, downcast="integer"))
Dopo aver eseguito i codici, otterremo il seguente output.
01
12
2 -3
dtype: int8