def map! axis=:vector, &block
      if %i[vector column].include?(axis)
        map_vectors!(&block)
      elsif axis == :row
        map_rows!(&block)
      end
    end
Destructive map. Modifies the DataFrame. Each run of the block
must return a Daru::Vector. You can specify the axis to map over
as the argument. Default to :vector.

== Arguments

* +axis+ - The axis to map over. Can be :vector (or :column) or :row.
Default to :vector.