Ausgabe
Ich habe einen DataFrame wie unten gezeigt, ich möchte die Dezimalzahl ohne Rundung in eine Ganzzahl konvertieren.
Date A B
01-01-2022 12.87 0.67
02-01-2022 3.8976 123.98
03-01-2022 6.7654 23.98
04-01-2022 2.897 0.098
05-01-2022 3.986 0.76
06-01-2022 1.09 12.45
Gewünschte Ausgabe:
Date A B
01-01-2022 12 0
02-01-2022 3 123
03-01-2022 6 23
04-01-2022 2 0
05-01-2022 3 0
06-01-2022 1 12
Lösung
Option 1
Eine Möglichkeit, dies zu tun, besteht darin, int
wie folgt in den Typ umzuwandeln
df[['A', 'B']] = df[['A', 'B']].astype(int)
[Out]:
Date A B
0 01-01-2022 12 0
1 02-01-2022 3 123
2 03-01-2022 6 23
3 04-01-2022 2 0
4 05-01-2022 3 0
5 06-01-2022 1 12
Option 2
Man kann es auch .applymap()
wie folgt machen
df[['A', 'B']] = df[['A', 'B']].applymap(int)
[Out]:
Date A B
0 01-01-2022 12 0
1 02-01-2022 3 123
2 03-01-2022 6 23
3 04-01-2022 2 0
4 05-01-2022 3 0
5 06-01-2022 1 12
Oder mit benutzerdefinierten Lambda-Funktionen
df[['A', 'B']] = df[['A', 'B']].applymap(lambda x: int(x))
[Out]:
Date A B
0 01-01-2022 12 0
1 02-01-2022 3 123
2 03-01-2022 6 23
3 04-01-2022 2 0
4 05-01-2022 3 0
5 06-01-2022 1 12
Möglichkeit 3
Eine andere Möglichkeit ist die Verwendung .apply()
einer benutzerdefinierten Lambda-Funktion
df[['A', 'B']] = df[['A', 'B']].apply(lambda x: x.astype(int))
[Out]:
Date A B
0 01-01-2022 12 0
1 02-01-2022 3 123
2 03-01-2022 6 23
3 04-01-2022 2 0
4 05-01-2022 3 0
5 06-01-2022 1 12
Beantwortet von – Gonçalo Peres
Antwort geprüft von – Mildred Charles (FixError Admin)