title: How to split a struct in Golang according to specific values
body: <p>I have a Python and R background and I am used to work with dataframes. 
  If I have a following table:</p>
  
  <pre><code>&gt;&gt;&gt; table
  
  ID        Phone   Email Value
  ------------------------------
  ID1  15555555555    None  None
  ID2         None  3Email  None
  ID3         3123  4Email   aaa
  </code></pre>
  
  <p>deriving two tables from <code>table</code> would look like this:</p>
  
  <pre><code>&gt;&gt;&gt; table1=table[["ID","Phone","Email"]]
  &gt;&gt;&gt; table1
  
  ID        Phone   Email
  ------------------------
  ID1  15555555555    None
  ID2         None  3Email
  ID3         3123  4Email
  
  &gt;&gt;&gt; table2=table[["ID","Value"]]
  &gt;&gt;&gt; table2
  
  ID Value
  ---------
  ID1  None
  ID2  None
  ID3   aaa
  </code></pre>
  
  <p>Now I am trying to achieve the same with Golang. Below is my first step:</p>
  
  <pre><code>package main
  
  import (
      "fmt"
  
  )
  
  type Identification struct {
      ID    string
      Phone int64
      Email string
      Value string
  }
  
  func main() {
      // define slice of Identification
      var idents []Identification
      idents = append(idents, Identification{ID: "ID1", Phone: 15555555555})
      idents = append(idents, Identification{ID: "ID2", Email: "3Email"})
      idents = append(idents, Identification{ID: "ID3",   Phone:3123, Email: "4Email", Value: "aaa"})
  
      fmt.Println(idents)
  
  }
  </code></pre>
  
  <p>Result:</p>
  
  <pre><code>[{ID1 15555555555  } {ID2 0 3Email } {ID3 3123 3Email aaa}]
  </code></pre>
  
  <p>My question is how can I slice <code>idents</code>the same way I did with Python in the example? </p>