Python 使用Columns.Str.Startswith删除多个列

Python 使用Columns.Str.Startswith删除多个列,python,pandas,multiple-columns,startswith,Python,Pandas,Multiple Columns,Startswith,我有一个204行x507列的数据集。据我所知,为了删除包含单词“Dog”的列,例如,您可以使用: df.loc[:,~df.columns.str.startswith'Dog'] 我还了解到,您可以通过使用以下“str.contains”代码,使用多个条件删除列,例如“Dog”和“Cat”: df.loc[:,~df.columns.str.contains('Dog|Cat')] 但是,当您将“|”或函数应用于columns.str.startswith(如下所示)时,它似乎不起作用,并且

我有一个204行x507列的数据集。据我所知,为了删除包含单词“Dog”的列,例如,您可以使用:

df.loc[:,~df.columns.str.startswith'Dog']

我还了解到,您可以通过使用以下“str.contains”代码,使用多个条件删除列,例如“Dog”和“Cat”:

df.loc[:,~df.columns.str.contains('Dog|Cat')]
但是,当您将“|”或函数应用于columns.str.startswith(如下所示)时,它似乎不起作用,并且输出为204行x 0列

df.loc[:,~df.columns.str.startswith('Dog|Cat')]
共204行×0列

df.loc[:,~df.columns.str.startswith('Dog|Cat')]

为什么会这样?是否有一种方法可以使用df.columns.str.startswith函数使用多个条件删除列?

如果希望在使用元组时使用多个值,如:


对于一些字符串,我更喜欢正则表达式方法:

 df.loc[:, ~df.columns.str.match('^(Dog|Cat).*')]