In today’s tutorial we’ll learn how to round values in Pandas DataFrame columns. We’ll look into several cases:

- Round float values to the nearest 2 decimals
- Round float values to nearest 10 / 100
- Rounding a Series
- Persisting changes after rounding up

### Example DataFrame

Let’s get starting by creating a sample DataFrame that you can use to follow along:

```
import pandas as pd
month = ['January', 'September', 'May', 'December']
language = ['Kotlin', 'VisualBasic', 'Java', 'C']
salary = [85.504, 84.22, 86.22, 86.55]
hr = dict(month=month, language=language, salary=salary)
df = pd.DataFrame(data=hr)
```

Let’s look into the DataFrame values:

month | language | salary | |
---|---|---|---|

0 | January | Kotlin | 85.504 |

1 | September | VisualBasic | 84.220 |

2 | May | Java | 86.220 |

3 | December | C | 86.550 |

### Rounding specific columns to nearest two decimals

In our case we would like to take care of the salary column. We’ll use the round DataFrame method and pass a dictionary containing the column name and the number of decimal places to round to.

`df.round(decimals = {'salary': 2})`

Here is the result:

month | language | salary | |
---|---|---|---|

0 | January | Kotlin | 85.50 |

1 | September | VisualBasic | 84.22 |

2 | May | Java | 86.22 |

3 | December | C | 86.55 |

Note that if you have multiple columns to be rounded you should pass them to the dictionary accordingly.

```
#pseudo code
df.round(decimals = {'col1': <decimals_col1, 'coln': <decimals_coln> })
```

### Rounding up column values to nearest 10 / 100

In the same fashion we can use a negative number in the decimals parameter to round up/down to nearest 1000 /100 /10 etc’:

```
# nearest 10
df.round(decimals = {'salary': -1})
#nearest 100
df.round(decimals = {'salary': -2})
```

### Rounding a single column (Series)

`df['salary'].round(decimals=0)`

### Persisting changes in your DataFrame

The round method doesn’t have an inplace parameter; therefore if you would like to save your rounded values, you need to assign them into a new DataFrame:

```
df_rounded = df.round(decimals = {'salary': 2})
```

### Suggested Learning

How to convert Pandas columns to integers and handle NAN values?