nodes: 0, module; 1, function_definition; 2, function_name:append_rows; 3, parameters; 4, block; 5, identifier:self; 6, identifier:indexes; 7, identifier:values; 8, expression_statement; 9, comment:# check that the values data is less than or equal to the length of the indexes; 10, if_statement; 11, comment:# check the indexes are not duplicates; 12, expression_statement; 13, if_statement; 14, comment:# append index value; 15, expression_statement; 16, expression_statement; 17, comment:"""
          Appends values to the end of the data. Be very careful with this function as for sort DataFrames it will not 
          enforce sort order. Use this only for speed when needed, be careful.
  
          :param indexes: list of indexes to append
          :param values: list of values to append
          :return: nothing
          """; 18, comparison_operator:len(values) != len(indexes); 19, block; 20, assignment; 21, comparison_operator:len(set(combined_index)) != len(combined_index); 22, block; 23, call; 24, call; 25, call; 26, call; 27, raise_statement; 28, identifier:combined_index; 29, binary_operator:self._index + indexes; 30, call; 31, call; 32, raise_statement; 33, attribute; 34, argument_list; 35, attribute; 36, argument_list; 37, identifier:len; 38, argument_list; 39, identifier:len; 40, argument_list; 41, call; 42, attribute; 43, identifier:indexes; 44, identifier:len; 45, argument_list; 46, identifier:len; 47, argument_list; 48, call; 49, attribute; 50, identifier:extend; 51, identifier:indexes; 52, attribute; 53, identifier:extend; 54, identifier:values; 55, identifier:values; 56, identifier:indexes; 57, identifier:ValueError; 58, argument_list; 59, identifier:self; 60, identifier:_index; 61, call; 62, identifier:combined_index; 63, identifier:IndexError; 64, argument_list; 65, identifier:self; 66, identifier:_index; 67, identifier:self; 68, identifier:_data; 69, string; 70, identifier:set; 71, argument_list; 72, string; 73, string_content:length of values is not equal to length of indexes; 74, identifier:combined_index; 75, string_content:duplicate indexes in Series
code: def append_rows(self, indexes, values):
          """
          Appends values to the end of the data. Be very careful with this function as for sort DataFrames it will not 
          enforce sort order. Use this only for speed when needed, be careful.
  
          :param indexes: list of indexes to append
          :param values: list of values to append
          :return: nothing
          """
  
          # check that the values data is less than or equal to the length of the indexes
          if len(values) != len(indexes):
              raise ValueError('length of values is not equal to length of indexes')
  
          # check the indexes are not duplicates
          combined_index = self._index + indexes
          if len(set(combined_index)) != len(combined_index):
              raise IndexError('duplicate indexes in Series')
  
          # append index value
          self._index.extend(indexes)
          self._data.extend(values)