code: def print_format_output(dataframe):
      
      print_df = pd.DataFrame()
      dropped_cols = []
      empty_cols = []
      # column display priority is based on the info_keys passed in
      for i, col in enumerate(dataframe):
          if dataframe[col].isnull().all():
              # Don't add col to print_df if is fully empty
              empty_cols += [col]
              continue
  
          print_df[col] = dataframe[col]
          test_table = tabulate(print_df, headers="keys", tablefmt="psql")
          if str(test_table).index("\n") > TERM_WIDTH:
              # Drop all columns beyond terminal width
              print_df.drop(col, axis=1, inplace=True)
              dropped_cols += list(dataframe.columns)[i:]
              break
  
      table = tabulate(
          print_df, headers="keys", tablefmt="psql", showindex="never")
  
      print(table)
      if dropped_cols:
          print("Dropped columns:", dropped_cols)
          print("Please increase your terminal size to view remaining columns.")
      if empty_cols:
          print("Empty columns:", empty_cols)
  
      return table, dropped_cols, empty_cols
docs: Prints output of given dataframe to fit into terminal.
  
      Returns:
          table (pd.DataFrame): Final outputted dataframe.
          dropped_cols (list): Columns dropped due to terminal size.
          empty_cols (list): Empty columns (dropped on default).