title: Select rows randomly based on condition pandas python
body: <p>I have a small test data sample:</p>
  
  <pre><code>import pandas as pd
  
  df = {'ID': ['H900','H901','H902','','M1435','M149','M157','','M699','M920','','M789','M617','M991','H903','M730','M191'],
    'Clone': [0,1,2,2,2,2,2,2,3,3,3,4,4,4,5,5,6],
    'Length': [48,42  ,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48]}
  
  df = pd.DataFrame(df)
  </code></pre>
  
  <p>it looks like:</p>
  
  <pre><code>df
  Out[4]: 
        Clone   ID  Length
  0       0   H900      48
  1       1   H901      42
  2       2   H902      48
  3       2             48
  4       2  M1435      48
  5       2   M149      48
  6       2   M157      48
  7       2             48
  8       3   M699      48
  9       3   M920      48
  10      3             48
  11      4   M789      48
  12      4   M617      48
  13      4   M991      48
  14      5   H903      48
  15      5   M730      48
  16      6   M191      48
  </code></pre>
  
  <p><strong>I want a simple script to pick, for example, 5 rows, out randomly but only the rows that contains an ID, it should not include any row that does not contain an ID.</strong></p>
  
  <p>my script:</p>
  
  <pre><code>import pandas as pd
  import numpy as np
  
  df = {'ID': ['H900','H901','H902','','M1435','M149','M157','','M699','M920','','M789','M617','M991','H903','M730','M191'],
    'Clone': [0,1,2,2,2,2,2,2,3,3,3,4,4,4,5,5,6],
    'Length': [48,42  ,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48]}
  
  df = pd.DataFrame(df)
  
  rows = np.random.choice(df.index.values, 5)
  sampled_df = df.ix[rows]
  
  sampled_df.to_csv('sampled_df.txt', sep = '\t', index=False)
  </code></pre>
  
  <p><strong>but this script sometimes pick out the rows that does not contain an ID</strong></p>