Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame

Asad Riaz 22 Januar 2022
  1. astype(int), um float in int in Pandas umzuwandeln
  2. to_numeric() Methode zur Umwandlung von float in int in Pandas
Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame

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

Verwandter Artikel - Pandas DataFrame