我有多个列的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'要求字符串作为左操作数,而不是列表
有什么办法用多个值过滤列?
最佳答案
您可以使用pandas.DataFrame.filter
:
设定
df = pd.DataFrame(columns=['MLB', 'NBA', 'NHL', 'NFL', 'TESTNBA'])
df_check = ['MLB', 'NBA']
df.filter(regex='|'.join(df_check)).columns
Index(['MLB', 'NBA', 'TESTNBA'], dtype='object')
关于python - Pandas 按多个值过滤列值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52260609/