def [](arg)
      case
      when arg.is_a?(Range)
        index = @index.select{|i| arg.include?(i)}
        Mikon::DataFrame.new(index.map{|i| self.row(i)}, {index: index})

      when arg.is_a?(Symbol)
        self.column(arg)
      end
    end
def [](arg)
      case
      when arg.is_a?(Range)
        index = @index.select{|i| arg.include?(i)}
        Mikon::DataFrame.new(index.map{|i| self.row(i)}, {index: index})

      when arg.is_a?(Symbol)
        self.column(arg)
      end
    end
Accessor for column and rows
 @example
   df = DataFrame.new({a: [1, 2, 3], b: [2, 3, 4]})
   df[0..1].to_json #-> {a: [1, 2], b: [2, 3]}
   df[:a] #-> <Mikon::Series>