Skip to content
Advertisement

how to convert decimal to integer without rounding the decimal in python?

i am having one DataFrame as shown below,i want to convert the decimal number to integer without rounding.

    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

Desired output:

    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

Advertisement

Answer

Option 1

One way to do that is to cast to the type int as follows

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

One can also do it with .applymap() as follows

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

Or using custom lambda functions

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

Option 3

Another way is using .apply() with a custom lambda function

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
Advertisement