<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def separate_directions(di_block):
 """ Separates set of directions into two modes based on principal direction Parameters _______________ di_block : block of nested dec,inc pairs Return mode_1_block,mode_2_block : two lists of nested dec,inc pairs """

    ppars = doprinc(di_block)
    di_df = pd.DataFrame(di_block)  # turn into a data frame for easy filtering
    di_df.columns = ['dec', 'inc']
    di_df['pdec'] = ppars['dec']
    di_df['pinc'] = ppars['inc']
    di_df['angle'] = angle(di_df[['dec', 'inc']].values,
                           di_df[['pdec', 'pinc']].values)
    mode1_df = di_df[di_df['angle'] <= 90]
    mode2_df = di_df[di_df['angle'] > 90]
    mode1 = mode1_df[['dec', 'inc']].values.tolist()
    mode2 = mode2_df[['dec', 'inc']].values.tolist()
    return mode1, mode2