我试图通过以下代码在pandas数据框中删除索引号的多列(我的数据集中的第2列和第70列,分别索引为1和69):
df.drop([df.columns[[1, 69]]], axis=1, inplace=True)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: unhashable type: 'Index'
Run Code Online (Sandbox Code Playgroud)
在我的代码中,[1,69]突出显示并说:
Expected type 'Integral', got 'list[int]' instead
Run Code Online (Sandbox Code Playgroud)
下面的代码执行我想要它成功完成的操作,但是在两行重复代码上(首先删除col索引69,然后是1,并且顺序很重要,因为删除先前的列会更改后面列的索引).我以为我可以简单地将多个列索引指定为列表,但也许我上面有错误?
df.drop([df.columns[69]], axis=1, inplace=True)
df.drop([df.columns[1]], axis=1, inplace=True)
Run Code Online (Sandbox Code Playgroud)
有没有办法可以在一行上执行此操作,类似于上面的第一个代码片段?
jor*_*ris 93
您不需要将其包装在列表中[..]
,只需提供列索引的子选择:
df.drop(df.columns[[1, 69]], axis=1, inplace=True)
Run Code Online (Sandbox Code Playgroud)
因为索引对象已被视为类似列表.
Nod*_*ili 11
试试这个
df.drop(df.iloc[:, 1:69], inplace=True, axis=1)
这适合我
归档时间: |
|
查看次数: |
120050 次 |
最近记录: |