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

  1. astype(int), um float in int in Pandas umzuwandeln
  2. to_numeric() Methode zur Umwandlung von float in int 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

Verwandter Artikel - Pandas DataFrame

  • Wie man eine DataFrame-Spalte in eine Zeichenfolge in Pandas konvertiert
  • Wie man ein Python-Wörterbuch in Pandas DataFrame konvertiert
  • comments powered by Disqus