Вы можете использовать логическую маску:
# construct dataframe with year-month columns
L = [f'{year}-{i:02}' for year in range(2000, 2016) for i in range(1, 13)]
df = pd.DataFrame(columns=L)
# calculate Boolean mask
# split by '-', take last split, convert to integer, then compare
col_mask = df.columns.str.split('-').str[-1].astype(int).isin([1, 4, 7, 10])
# apply Boolean mask and print columns
print(df.loc[:, col_mask].columns)
Index(['2000-01', '2000-04', '2000-07', '2000-10', '2001-01', '2001-04',
'2001-07', '2001-10', '2002-01', '2002-04', '2002-07', '2002-10',
'2003-01', '2003-04', '2003-07', '2003-10', '2004-01', '2004-04',
'2004-07', '2004-10', '2005-01', '2005-04', '2005-07', '2005-10',
'2006-01', '2006-04', '2006-07', '2006-10', '2007-01', '2007-04',
'2007-07', '2007-10', '2008-01', '2008-04', '2008-07', '2008-10',
'2009-01', '2009-04', '2009-07', '2009-10', '2010-01', '2010-04',
'2010-07', '2010-10', '2011-01', '2011-04', '2011-07', '2011-10',
'2012-01', '2012-04', '2012-07', '2012-10', '2013-01', '2013-04',
'2013-07', '2013-10', '2014-01', '2014-04', '2014-07', '2014-10',
'2015-01', '2015-04', '2015-07', '2015-10'],
dtype='object')