Python 基于包含字符串的列(2个定义的条件),从另一个数据帧创建数据帧

Python 基于包含字符串的列(2个定义的条件),从另一个数据帧创建数据帧,python,pandas,Python,Pandas,我正在尝试将df1中的一些列编译为新的数据帧df2 将根据以下条件选择列: 如果列中有“坐标”一词 如果列中有单词“ID” 以下是我尝试的代码: df1 = pd.read_csv(csvpath) #table as below cols = [col for col in df1.columns if 'Coordinates' and 'ID' in col] df2=df1[cols] 但是,这些条件仅应用于cols=(在本例中,仅提取ID并忽略坐标)中的最后一项 我如何编辑上面

我正在尝试将df1中的一些列编译为新的数据帧df2

将根据以下条件选择列:

  • 如果列中有“坐标”一词

  • 如果列中有单词“ID”

  • 以下是我尝试的代码:

    df1 = pd.read_csv(csvpath) #table as below
    
    cols = [col for col in df1.columns if  'Coordinates' and 'ID' in col]
    
    df2=df1[cols]
    
    但是,这些条件仅应用于cols=(在本例中,仅提取ID并忽略坐标)中的最后一项

    我如何编辑上面的代码以同时包含坐标和ID(我可以删除不需要的列,但是我处理的数据集很大,因此我需要以类似于我上面定义的方式进行操作)

    非常感谢你在这方面的帮助

    原始表格(df1)

    所需输出(df2)


    我认为这应该行得通

    cols = [col for col in df1.columns if  'Coordinates' in col or 'ID' in col]
    

    我试过了,它需要整个df。还有其他建议吗?你确定吗,我只是在我的电脑上用和你相同的列名试过了,效果很好