nodes: 0, module; 1, function_definition; 2, function_name:df_all; 3, parameters; 4, block; 5, identifier:self; 6, identifier:phot; 7, expression_statement; 8, expression_statement; 9, return_statement; 10, comment:"""Subclasses may want to sort this
          """; 11, assignment; 12, identifier:df; 13, identifier:df; 14, call; 15, attribute; 16, argument_list; 17, identifier:pd; 18, identifier:concat; 19, list_comprehension; 20, call; 21, for_in_clause; 22, attribute; 23, argument_list; 24, identifier:f; 25, call; 26, identifier:self; 27, identifier:to_df; 28, identifier:f; 29, attribute; 30, argument_list; 31, identifier:self; 32, identifier:get_filenames; 33, identifier:phot
code: def df_all(self, phot):
          """Subclasses may want to sort this
          """
          df = pd.concat([self.to_df(f) for f in self.get_filenames(phot)])
          return df