class_docstr: GFrame is similar to SFrame but is associated with an SGraph.
  
  - GFrame can be obtained from either the `vertices` or `edges`
  attributed in any SGraph:
  
  >>> import turicreate
  >>> g = turicreate.load_sgraph(...)
  >>> vertices_gf = g.vertices
  >>> edges_gf = g.edges
  
  - GFrame has the same API as SFrame:
  
  >>> sa = vertices_gf['pagerank']
  
  >>> # column lambda transform
  >>> vertices_gf['pagerank'] = vertices_gf['pagerank'].apply(lambda x: 0.15 + 0.85 * x)
  
  >>> # frame lambda transform
  >>> vertices_gf['score'] = vertices_gf.apply(lambda x: 0.2 * x['triangle_count'] + 0.8 * x['pagerank'])
  
  >>> del vertices_gf['pagerank']
  
  - GFrame can be converted to SFrame:
  
  >>> # extract an SFrame
  >>> sf = vertices_gf.__to_sframe__()
class_docstr_tok: ["GFrame","is","similar","to","SFrame","but","is","associated","with","an","SGraph",".","-","GFrame","can","be","obtained","from","either","the","`","vertices","`","or","`","edges","`","attributed","in","any","SGraph",":",">",">",">","import","turicreate",">",">",">","g","=","turicreate.load_sgraph","(","...",")",">",">",">","vertices_gf","=","g.vertices",">",">",">","edges_gf","=","g.edges","-","GFrame","has","the","same","API","as","SFrame",":",">",">",">","sa","=","vertices_gf","[","'pagerank","'","]",">",">",">","#","column","lambda","transform",">",">",">","vertices_gf","[","'pagerank","'","]","=","vertices_gf","[","'pagerank","'","]",".apply","(","lambda","x",":","0.15","+","0.85","*","x",")",">",">",">","#","frame","lambda","transform",">",">",">","vertices_gf","[","'score","'","]","=","vertices_gf.apply","(","lambda","x",":","0.2","*","x","[","'triangle_count","'","]","+","0.8","*","x","[","'pagerank","'","]",")",">",">",">","del","vertices_gf","[","'pagerank","'","]","-","GFrame","can","be","converted","to","SFrame",":",">",">",">","#","extract","an","SFrame",">",">",">","sf","=","vertices_gf.__to_sframe__","(",")"]
docstr: Returns the number of columns.
  
  Returns
  -------
  out : int
      Number of columns in the SFrame.
docstr_tok: ["Returns","the","number","of","columns",".","Returns","--","--","--","-","out",":","int","Number","of","columns","in","the","SFrame","."]
code: def num_columns(self):
      """
      Returns the number of columns.
  
      Returns
      -------
      out : int
          Number of columns in the SFrame.
      """
      return len(self.column_names())
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  from .sframe import SFrame
  from .._cython.context import debug_trace
  from ..util import _is_non_string_iterable
  from .sarray import SArray, _create_sequential_sarray
  import copy
label_desc: Use image node_id 12 for calling the GFrame obj's underlying member method code with example usage: obj.num_columns() and returns: len