Fix bug in output ordering from complete()

pre-allocate dataframe and populate
instead of adding rows