Python 使用Columns.Str.Startswith删除多个列
我有一个204行x507列的数据集。据我所知,为了删除包含单词“Dog”的列,例如,您可以使用: df.loc[:,~df.columns.str.startswith'Dog'] 我还了解到,您可以通过使用以下“str.contains”代码,使用多个条件删除列,例如“Dog”和“Cat”: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(如下所示)时,它似乎不起作用,并且
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).*')]