'Rename Pandas columns with inplace

I want to rename a few columns and set inplace = False then I am able to view the result. Why set inplace = True will result in None (I have refresh the runtime to run inplace=True)?

ckd_renamed = ckd_data.rename(
    columns = {"id": "Id",
               "age": "Age",
               "bp": "blood_pressure"},
    inplace=True)

The dataset that I use is "https://raw.githubusercontent.com/dphi-official/Datasets/master/Chronic%20Kidney%20Disease%20(CKD)%20Dataset/ChronicKidneyDisease.csv"



Solution 1:[1]

Because when you set inplace=True, there is no new copy created, and ckd_data is modified, well, in-place.

The convention of returning None for in-place modifications stems from how e.g. Python's .sort() works.

After

ckd_data.rename(columns = {"id": "Id", "age": "Age", "bp": "blood_pressure"}, inplace=True)

you'd continue to refer to the dataframe, now with modified column names, as ckd_data.

EDIT: If you're using Colab and you want the cell to also display the new value, you should be able to add an additional expression statement with just the name of the variable.

ckd_data.rename(columns = {"id": "Id", "age": "Age", "bp": "blood_pressure"}, inplace=True)
ckd_data

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1