code: def write_column(self, column, data, **keys):
          
  
          firstrow = keys.get('firstrow', 0)
  
          colnum = self._extract_colnum(column)
  
          # need it to be contiguous and native byte order.  For now, make a
          # copy.  but we may be able to avoid this with some care.
  
          if not data.flags['C_CONTIGUOUS']:
              # this always makes a copy
              data_send = numpy.ascontiguousarray(data)
              # this is a copy, we can make sure it is native
              # and modify in place if needed
              array_to_native(data_send, inplace=True)
          else:
              # we can avoid the copy with a try-finally block and
              # some logic
              data_send = array_to_native(data, inplace=False)
  
          if IS_PY3 and data_send.dtype.char == 'U':
              # for python3, we convert unicode to ascii
              # this will error if the character is not in ascii
              data_send = data_send.astype('S', copy=False)
  
          self._verify_column_data(colnum, data_send)
  
          self._FITS.write_column(
              self._ext+1, colnum+1, data_send,
              firstrow=firstrow+1, write_bitcols=self.write_bitcols)
          del data_send
          self._update_info()
docs: Write data to a column in this HDU
  
          This HDU must be a table HDU.
  
          parameters
          ----------
          column: scalar string/integer
              The column in which to write.  Can be the name or number (0 offset)
          column: ndarray
              Numerical python array to write.  This should match the
              shape of the column.  You are probably better using
              fits.write_table() to be sure.
          firstrow: integer, optional
              At which row you should begin writing.  Be sure you know what you
              are doing!  For appending see the append() method.  Default 0.