Finding recessions in US GDP data using pandas
Your function does too many things: reading Excel file, filtering necessary rows, and calculating the "recession_start". My advice is to take the first two out. 

Also, supply quarters and GDP as separate objects (pd.Series) to the function instead of the DataFrame. Like this you will remove hardcoded strings from your function, and, what's more important, you will get rid of SettingWithCopyWarning that you should get right now:

df = pd.read_excel('gdplev.xls',
                   names=['Quarter', 'GDP in 2009 dollars'],
                   usecols='E,G',
                   skiprows=7)
mask = df['Quarter'] &gt;= '2000q1'
print(get_recession_start(quarters=df.loc[mask, 'Quarter'],
                          gdps=df.loc[mask, 'GDP in 2009 dollars']))


Note that I use usecols instead of parse_cols as it is deprecated. Also, I removed df.query in favor of boolean masking and .loc.

Then, the function would look like this:

def get_recession_start(quarters: pd.Series,
                        gdps: pd.Series) -&gt; str:
    """
    Returns the year and quarter of the recession start time
    as a string value in a format such as 2005q3
    """
    growth = gdps.pct_change()
    recession = (growth &lt; 0) &amp; (growth.shift(-1) &lt; 0)
    recession = recession.reset_index(drop=True)
    return quarters.iloc[recession.idxmax()]


Here I also used triple double quotes for the docstring and type hints. IMHO, this looks much cleaner.  

Probably, it would also make sense to return only the recession.idxmax() index and get corresponding quarters value outside of the function.