Converti un Float in un Integer in Pandas DataFrame
-
astype(int)per convertirefloatinintin Pandas -
Metodo
to_numeric()per convertirefloatinintin 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