首页 > 解决方案 > 如何在数据框中删除多列,同时使用 loc 和列名

问题描述

我想从数据框中删除几列,其中几列是连续的,可以使用 df.loc 进行分组。

但是我也有一些列名需要使用列名本身来删除。

有人可以帮助我,在同一个 drop sattement 中同时使用 df.loc 和列名。

df_modified = df.drop(df.loc[:, 'Quarter of Joining': 'Age in Company (Years)'].columns, axis =1)

我还想用他们的名字删除更多列,即说'DOB','Gender'

标签: pythonpandasdataframe

解决方案


在我看来,您的解决方案是最简单的,这里是替代方案:

another = ['DOB','Gender']
m1 = (df.columns.values == 'Quarter of Joining').cumsum() != 0
m2 = (df.columns.values[::-1] == 'Age in Company (Years)').cumsum() != 0

df_modified = df = df.drop(df.columns[m1 & m2[::-1]].union(another), axis=1)

您的解决方案应该修改:

another = ['DOB','Gender']
c = df.loc[:, 'Quarter of Joining': 'Age in Company (Years)'].columns

df_modified = df.drop(c.union(another), axis=1)

推荐阅读