如何通过同时使用loc和列名来删除数据框中的多个列

问题描述 投票:2回答:1

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

但我也有几个列名需要使用列名本身删除。

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

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

我还想删除一些带有名字的栏目,比如'DOB','Gender'

python pandas dataframe
1个回答
3
投票

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

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)
© www.soinside.com 2019 - 2024. All rights reserved.