pandas.drop()没有丢弃列

时间:2018-01-30 17:53:49

标签: python pandas

我正在研究Allstate data from Kaggle。 我正在遍历分类列以创建虚拟对象,但pd.drop()并未放弃我的列。我试过了

for i in range(44):
    dummies1 = pd.get_dummies(combined[cols_cat[i+71]], prefix=cols_cat[i+72])
    combined = pd.concat([combined,dummies1], axis=1)
    combined = combined.drop(combined[cols_cat[i+71]], axis=1)

for i in range(44):
    dummies1 = pd.get_dummies(combined[cols_cat[i+71]], prefix=cols_cat[i+72])
    combined = pd.concat([combined,dummies1], axis=1)
    combined.drop(combined[cols_cat[i+71]], axis=1, inplace=True)

但是当我检查combined.head()时,假人的创建正常,但原始列仍然存在。 drop函数总是给我带来麻烦,我觉得在经过多次使用/研究后我仍然无法理解drop函数的inplace部分。 这里,cols_cat是我之前创建的列名的数组。

cols_cat = train.iloc[:,1:117].columns
cols_cont = train.iloc[:,117:131].columns 

我正在努力为人们创建一个模型数据框,以便更容易回答。在那之前,有人发现我正在犯的任何根本错误吗?

1 个答案:

答案 0 :(得分:1)

这样做:

combined = combined.drop(cols_cat[i+71], axis=1)

OR

combined.drop(cols_cat[i+71], axis=1, inplace=True)

根据pandas documentationaxis=1会从列中删除标签,而axis=0会从索引中删除标签。