# 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
```

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
```
User contributions licensed under: CC BY-SA
1 People found this is helpful