【发布时间】:2018-09-10 23:23:47
【问题描述】:
我的 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' 需要字符串作为左操作数,而不是列表
有什么方法可以按多个值过滤列?
【问题讨论】:
-
您在
NBA'中缺少'。将其更改为df_check = ['MLB', 'NBA']。 -
如果我理解正确,您想从整个数据框中选择 2 列,对吗?这种情况你可以试试:
df1 = df[['MLB','NBA']] -
或者只是
df[df_check]但如果 df 中不存在密钥,它将引发错误。如果 df 中的键是正确且预期的,它将起作用。 -
是的,但是让我调整一下问题。字符串 MLB 和 NBA 可能在其他列中,所以它更像是不相等