2024-09-28 23:18:01 发布
网友
我有一个数据框df,大约有200列。我想删除索引位置从50到90,120到170的列,它们的名称而不是索引位置。如何做到这一点
df
我不能使用:
df.drop('column name', axis=1)
直接原因是要删除的列太多,我无法像上面的例子那样真正键入每个列的名称
我想知道如何从特定列名column50到另一列名column90和column120到column170而不是使用int
column50
column90
column120
column170
int
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_文档:
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)
通过转换为一个系列,您实际上可以使用一个范围来删除。你只需要知道列名
您可以使用^{} 执行以下操作:
从
np.r_
文档:在您的例子中,它连接可以在df.drop命令中使用的非连续数组片
您可以创建如下列的列表:
相关问题 更多 >
编程相关推荐