Pandas使用rename重命名列时设置inplace=True返回None的原因是什么?
Pandas rename方法inplace参数返回值规则说明
这是Pandas的标准设计逻辑,所有内置inplace参数的方法均遵循同一规则,和数据集、运行环境无关:
- 当
inplace设为默认值False时,方法不会改动原DataFrame对象,会返回执行完修改后的新DataFrame,因此你可以用变量接收返回值得到修改结果。 - 当
inplace设为True时,方法会直接在原DataFrame对象上执行修改操作,没有返回值,固定返回None,因此你赋值给ckd_renamed的结果自然为None。
代码修正方案
你可以根据使用场景二选一:
方案1:保留inplace=True,移除赋值操作
修改后的结果直接存储在原ckd_data对象中,不需要新建变量接收:
ckd_data.rename( columns = {"id": "Id", "age": "Age", "bp": "blood_pressure"}, inplace=True)
方案2:移除inplace参数,保留赋值操作
使用默认的inplace=False,原ckd_data不会被改动,修改后的结果存储在新变量ckd_renamed中:
ckd_renamed = ckd_data.rename( columns = {"id": "Id", "age": "Age", "bp": "blood_pressure"})
内容的提问来源于stack exchange,提问作者Azul
相关产品推荐
相关产品推荐

