使用索引删除多个列



我有一个69列的数据框架,但我只想保留其中的20列。我想删除第一列,然后接下来的20列是我想要保留的,然后之后的所有列都应该被删除。数据帧称为df。我尝试使用。drop(),但当我做df.drop(df.columns[0], inplace=True)时,它给出了这个错误KeyError: "['World Development Indicators'] not found in axis"。"世界发展指标"是第一栏的名称。当我尝试做同样的事情来删除多行时,它给出了相同的错误,但列出了我试图删除的所有其他列。

必须指定columns参数:

df.drop(columns=df.columns[0], inplace=True) 

应该工作

pd.DataFrame({"column1": [1,2,3], "column2": [3,4,5]}).drop("column1")
# output
KeyError: "['column1'] not found in axis"

但是当你加上axis=1:

pd.DataFrame({"column1": [1,2,3], "column2": [3,4,5]}).drop("column1", axis=1)

列将被成功删除。

要删除列0,20-29,35,40-49,可以使用:

todrop = [0,35] + list(range(20, 30)) + list(range(40, 50))
df.drop(columns=df.iloc[:, todrop], inplace=True)