2024-10-03 02:37:55 发布
网友
我有多个列的df,如MLB,NBA,NHL,NFL,TESTNBA我想返回一个列中有字符串MLB或NBA的列表。如下所示:
df_check = ['MLB', 'NBA', 'TESTNBA'] value_cols = [col for col in df.columns if df_check in col]
上述操作失败,错误如下:
TypeError:“in”需要字符串作为左操作数,而不是列表
有没有办法按多个值筛选列?在
您可以使用^{}:
设置
df = pd.DataFrame(columns=['MLB', 'NBA', 'NHL', 'NFL', 'TESTNBA']) df_check = ['MLB', 'NBA']
Index(['MLB', 'NBA', 'TESTNBA'], dtype='object')
in运算符不以矢量方式工作。对于您的逻辑,您需要将any与生成器表达式一起使用:
in
any
value_cols = [col for col in df.columns if any(i in col for i in df_check)]
更好的是,您可以使用带^{}的布尔索引。下面是一个演示:
您可以使用^{} :
设置
^{pr2}$
in
运算符不以矢量方式工作。对于您的逻辑,您需要将any
与生成器表达式一起使用:更好的是,您可以使用带^{} 的布尔索引。下面是一个演示:
^{pr2}$相关问题 更多 >
编程相关推荐