我想从 pandas.DataFrame 中删除多个列并且不能这样做。

In [10]: object_columns = X.select_dtypes(['object']).columns

In [10]: type(object_columns)

Out[10]: pandas.core.index.Index

In [11]: X = X.drop(object_columns, inplace=True, axis=1)

ValueError: labels ['VAR_0001' 'VAR_0005' 'VAR_0044' 'VAR_0073'] not contained in axis

我更改了代码,但没有帮助:
In [12]: X = X.drop(X[object_columns], inplace=True, axis=1)

KeyError: "['VAR_0001' 'VAR_0005' 'VAR_0044' 'VAR_0073'] not in index"

谁能解释我做错了什么?

最佳答案

你需要做 X.drop(object_columns, inplace=True, axis=1)
通过传递 inplace=True 它对对象进行操作并且不返回任何内容,因此您不应该将其分配回来,请参阅 docs

所以你不需要:

X = X.drop(object_columns, inplace=True, axis=1)

只是
X.drop(object_columns, inplace=True, axis=1)

如果您通过 inplace=False 这是默认值:
X = X.drop(object_columns, inplace=False, axis=1)

那么它会起作用

关于python - Pandas 删除索引类型列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32327566/

10-10 22:32