我正在尝试使用以下代码在pandas数据框中按索引号删除多列(数据集中的第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
下面的代码完成了我希望它成功完成的工作,但是在两行重复的代码上(首先删除col索引69,然后删除1,顺序很重要,因为删除之前的列会更改后面的列的索引)。我以为我可以简单地将多个列索引指定为一个列表,但是上面我可能有问题吗?
df.drop([df.columns[69]], axis=1, inplace=True) df.drop([df.columns[1]], axis=1, inplace=True)
有没有一种方法可以像上面的第一个代码片段一样在一行上执行此操作?
您无需使用将其包装在列表中[..],只需提供columns索引的子选择即可:
[..]
df.drop(df.columns[[1, 69]], axis=1, inplace=True)
因为索引对象已被视为类似于列表。