Fatiar vários intervalos de colunas no Pandas, por lista de nomes

Estou tentando selecionar várias colunas em um dataframe do Pandas em duas abordagens diferentes:

1) através do número das colunas, por exemplo, colunas 1-3 e colunas 6 em diante.

e

2) por meio de uma lista de nomes de colunas, por exemplo:

years = list(range(2000,2017))
months = list(range(1,13))
years_month = list(["A", "B", "B"])
for y in years:
    for m in months:
        y_m = str(y) + "-" + str(m)
        years_month.append(y_m)     

Então,years_month produziria o seguinte:

['A',
 'B',
 'C',
 '2000-1',
 '2000-2',
 '2000-3',
 '2000-4',
 '2000-5',
 '2000-6',
 '2000-7',
 '2000-8',
 '2000-9',
 '2000-10',
 '2000-11',
 '2000-12',
 '2001-1',
 '2001-2',
 '2001-3',
 '2001-4',
 '2001-5',
 '2001-6',
 '2001-7',
 '2001-8',
 '2001-9',
 '2001-10',
 '2001-11',
 '2001-12']

Dito isso, qual é a melhor (ou correta) maneira de carregar apenas as colunas nas quais os nomes estão na listayears_month nas duas abordagens?