Python DataFrame drop方法中inplace参数的行为解析

拾光
拾光
发布时间:2026-10-14 | 2人浏览过
原创

本文深入解析Python pandas中drop方法的inplace参数。通过代码实例对比inplace为False(默认)和True时的行为差异,重点说明原数组内存地址不变但内容是否直接修改的区别。同时补充del与drop删除单列及多列的操作技巧,帮助开发者正确选择数据修改方式。

drop方法inplace参数行为解析

drop方法包含一个可选参数inplace,用于控制是否直接修改原数据对象并返回新数组。无论该参数默认为False还是显式设置为True,原数组在内存中的地址(ID)均保持不变。两者的核心区别在于原数组的数据内容是否被就地修改。当inplace为False(默认值)时,原数组内容保持不变;若需获取修改后的结果,必须将drop方法的返回值重新赋值给变量,例如:data = data.drop(['test','test2'], 1)。

若将inplace参数设置为True,则原数组的内容会被直接修改,无需重新赋值。

具体测试程序如下所示:

inplace参数对比测试代码


#增加两列空值
import numpy as np
data["test"] = np.nan
data["test2"] = np.nan
 
name	gender	age	test2	test
0	jerry	M	36	NaN	NaN
1	emma	F	23	NaN	NaN
2	tony	M	34	NaN	NaN
4	bob	M	20	NaN	NaN
 
#查看此时data的内存地址
id(data)
128971088
 
#删除这两列,inplace默认为False
id(data.drop(['test','test2'],1))
128971888
 
#查看data,发现数据并未改变
data
name	gender	age	test	test2
0	jerry	M	36	NaN	NaN
1	emma	F	23	NaN	NaN
2	tony	M	34	NaN	NaN
4	bob	M	20	NaN	NaN
 
#查看data的ID
id(data)
128971088
 
#删除这两列,inplace设置为False
id(data.drop(['test','test2'],1,inplace = True))
1545984728
 
#查看data,数据已经改变
data
name	gender	age	test	test2
0	jerry	M	36	NaN	NaN
1	emma	F	23	NaN	NaN
2	tony	M	34	NaN	NaN
4	bob	M	20	NaN	NaN
 
#查看data的ID
id(data)
128971088

补充知识:在Python中,可以使用del和drop方法删除DataFrame的列,其中drop方法支持一次性删除多列。

使用del和drop方法删除DataFrame中的列,drop方法的优势在于可以一次删除多列。

del与drop删除列操作对比


# 使用del, 一次只能删除一列,不能一次删除多列
# 只能使用 del df['密度'], 不能使用 del df[['密度', '含糖率']]
 
del df['密度']
 
# del df[['密度', '含糖率']] 报错
# 使用drop,有三种方法:
 
dt = dt.drop(['密度', '含糖率'], axis=1) # axis=1 表示删除列,['密度', '含糖率'] 要删除的col的列表,可一次删除多列
 
dt.drop(['密度', '含糖率'], axis=1, inplace=True) # inplace=True, 直接从内部删除
 
dt.drop(dt.columns[[0, 4, 8]], axis=1, inplace=True) # dt.columns[[0, 4, 8]] 直接使用索引查找列

以上关于Python drop方法中inplace参数的实例解析到此结束,希望能为读者提供有价值的参考。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表