使用 Columns.Str.Startswith 删除多列
Dropping Multiple Columns using Columns.Str.Startswith
我有一个包含 204 行 x 507 列的数据集。据我了解,例如,为了删除包含单词 'Dog' 的列,您可以使用:
df.loc[:,~df.columns.str.startswith('Dog')]
我还了解到您可以使用多个条件删除列,例如 'Dog' 和 'Cat',方法是使用以下 'str.contains' 代码:
df.loc[:,~df.columns.str.contains('Dog|Cat')]
但是,当您应用“|” (或)函数 "columns.str.startswith" 如下所示它不起作用并且输出给出 204 行 x 0 列
df.loc[:,~df.columns.str.startswith('Dog|Cat')]
出204 rows × 0 columns
这是为什么?有没有一种方法可以使用 "df.columns.str.startswith" 函数删除使用多个条件的列?
如果想要 Series.str.startswith
中的多个值,请使用 tuple
,例如:
df.loc[:,~df.columns.str.startswith(('Dog', 'Cat'))]
对于几个字符串,我更喜欢正则表达式方法:
df.loc[:, ~df.columns.str.match('^(Dog|Cat).*')]
我有一个包含 204 行 x 507 列的数据集。据我了解,例如,为了删除包含单词 'Dog' 的列,您可以使用:
df.loc[:,~df.columns.str.startswith('Dog')]
我还了解到您可以使用多个条件删除列,例如 'Dog' 和 'Cat',方法是使用以下 'str.contains' 代码:
df.loc[:,~df.columns.str.contains('Dog|Cat')]
但是,当您应用“|” (或)函数 "columns.str.startswith" 如下所示它不起作用并且输出给出 204 行 x 0 列
df.loc[:,~df.columns.str.startswith('Dog|Cat')]
出204 rows × 0 columns
这是为什么?有没有一种方法可以使用 "df.columns.str.startswith" 函数删除使用多个条件的列?
如果想要 Series.str.startswith
中的多个值,请使用 tuple
,例如:
df.loc[:,~df.columns.str.startswith(('Dog', 'Cat'))]
对于几个字符串,我更喜欢正则表达式方法:
df.loc[:, ~df.columns.str.match('^(Dog|Cat).*')]