如何使用pandas从数据帧中删除多个列(使用列名)?

2024-09-28 23:18:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框df,大约有200列。我想删除索引位置从50到90,120到170的列,它们的名称而不是索引位置。如何做到这一点

我不能使用:

df.drop('column name', axis=1)

直接原因是要删除的列太多,我无法像上面的例子那样真正键入每个列的名称

我想知道如何从特定列名column50到另一列名column90column120column170而不是使用int


Tags: 数据name名称df键入原因column例子
3条回答
df.drop(df.columns.to_series()["column_name_1":"column_name_2"], axis=1)

通过转换为一个系列,您实际上可以使用一个范围来删除。你只需要知道列名

您可以使用^{}执行以下操作:

import numpy
idx = np.r_[50:90, 120:170]

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

np.r_文档:

Translates slice objects to concatenation along the first axis.

在您的例子中,它连接可以在df.drop命令中使用的非连续数组片

您可以创建如下列的列表:

idx = list(range(50,90)) + list(range(120,170))

df = df.drop(df.columns[idx], axis=1)

相关问题 更多 >