删除熊猫中的多列

我试图在一个熊猫数据框中按索引号删除多个列(我的数据集中的第2列和第70列,索引分别为1和69) ,代码如下:

df.drop([df.columns[[1, 69]]], axis=1, inplace=True)

我得到以下错误:

TypeError: unhashable type: 'Index'

在我的代码中,[1,69]被高亮显示,并写道:

Expected type 'Integral', got 'list[int]' instead

下面的代码完成了我希望它完成的任务,但是在两行重复的代码上(首先删除 colindex 69,然后删除1,顺序很重要,因为删除前面的列会改变后面的列的索引)。我认为我可以简单地将多个列索引指定为一个列表,但是也许我在上面有什么错误?

df.drop([df.columns[69]], axis=1, inplace=True)
df.drop([df.columns[1]], axis=1, inplace=True)

有没有一种方法,我可以做到这一点,在一行类似的第一个代码片段上面?

144236 次浏览

您不需要使用 [..]将其包装在列表中,只需提供列索引的子选项:

df.drop(df.columns[[1, 69]], axis=1, inplace=True)

因为索引对象已被视为类列表对象。

试试这个

df.drop(df.iloc[:, 1:69], inplace=True, axis=1)

这对我有用