1. 程式人生 > 程式設計 >Python drop方法刪除列之inplace引數例項

Python drop方法刪除列之inplace引數例項

drop方法有一個可選引數inplace,表明可對原陣列作出修改並返回一個新陣列。不管引數預設為False還是設定為True,原陣列的記憶體值是不會改變的,區別在於原陣列的內容是否直接被修改。預設為False,表明原陣列內容並不改變,如果我們需要得到改變後的內容,需要將新結果賦給一個新的陣列,即data = data.drop(['test','test2'],1)。

如果將inplace值設定為True,則原陣列內容直接被改變。

測試程式如下

#增加兩列空值
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',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',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,一次只能刪除一列,不能一次刪除多列
# 只能使用 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]],inplace=True) # dt.columns[[0,8]] 直接使用索引查詢列

以上這篇Python drop方法刪除列之inplace引數例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。