Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
-
astype(int)
, umfloat
inint
in Pandas umzuwandeln -
to_numeric()
Methode zur Umwandlung vonfloat
inint
in Pandas
Wir werden Methoden demonstrieren, um eine Fließkommazahl in eine Ganzzahl in einem Pandas DataFrame
zu konvertieren - astype(int)
und to_numeric()
Methoden.
Zuerst erstellen wir ein zufälliges Array unter Verwendung einer NumPy
-Bibliothek und konvertieren es dann in DataFrame
.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(5, 5) * 5)
print(df)
Wenn Sie diesen Code ausführen, erhalten Sie die Ausgabe wie folgt, die Werte in float
hat.
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)
, um float
in int
in Pandas umzuwandeln
Um float
in int
umzuwandeln, werden wir die Methode astype(int)
verwenden, die vom Paket Pandas
zur Verfügung gestellt wird. Der Code lautet,
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("***********************************************")
Nach Ausführen der obigen Codes erhalten wir die folgende Ausgabe.
*********** 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
***********************************************
***********************************************
Wir können den float
-Wert auf int
abrunden, indem wir df.round(0).astype(int)
benutzen.
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("***********************************************")
Nachdem wir den Code ausgeführt haben, erhalten wir die folgende Ausgabe.
*********** 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
***********************************************
***********************************************
to_numeric()
Methode zur Umwandlung von float
in int
in Pandas
Diese Methode bietet Funktionalität zur sicheren Konvertierung nicht-numerischer Typen (z. B. Zeichenketten) in einen geeigneten numerischen Typ.
s = pd.Series(["1.0", "2", -3])
print(pd.to_numeric(s, downcast="integer"))
Nachdem der Code ausgeführt wurde, erhalten wir die folgende Ausgabe.
01
12
2 -3
dtype: int8