def []=(*args)
      vector = args.pop
      axis = extract_axis(args)
      names = args

      dispatch_to_axis axis, :insert_or_modify, names, vector
    end
def []=(*args)
      vector = args.pop
      axis = extract_axis(args)
      names = args

      dispatch_to_axis axis, :insert_or_modify, names, vector
    end
Insert a new row/vector of the specified name or modify a previous row.
 Instead of using this method directly, use df.row[:a] = [1,2,3] to set/create
 a row ':a' to [1,2,3], or df.vector[:vec] = [1,2,3] for vectors.

 In case a Daru::Vector is specified after the equality the sign, the indexes
 of the vector will be matched against the row/vector indexes of the DataFrame
 before an insertion is performed. Unmatched indexes will be set to nil.