我有多个列的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/

10-11 10:38