def equalize_rows(rows)
        column_sizes = rows.collect { |r| r.size }

        return rows if column_sizes.uniq.size == 1

        max_size = column_sizes.max
        small_rows = []
        column_sizes.each_with_index { |c,i| small_rows << i if c < max_size }

        small_rows.each do |i| 
          rows[i] += [NotAvailable] * (max_size - rows[i].size)
        end

        rows
      end
def equalize_rows(rows)
        column_sizes = rows.collect { |r| r.size }

        return rows if column_sizes.uniq.size == 1

        max_size = column_sizes.max
        small_rows = []
        column_sizes.each_with_index { |c,i| small_rows << i if c < max_size }

        small_rows.each do |i| 
          rows[i] += [NotAvailable] * (max_size - rows[i].size)
        end

        rows
      end
If rows are of different column size the rows are equalized in column
 size by filling missing columns with NA