title: catch exception and return empty dataframe
body: <p>I query a database and save result as a dataframe which I then transform by <code>factorize</code> with <code>pivot_table</code>. This works fine when database query returns data but it throws an error when no data is returned(this is to be expected). How to catch this exception and return empty dataframe? </p>
  
  <pre><code>#When dataframe is non-empty, transformation works fine:
  print df
  
     sale name  year
  0   41  Jason  2012
  1   24  Molly  2012
  2   31  Jason  2013
  3   32  Jason  2014
  4   31  Molly  2014
  
  
  df['groups'] = (pd.factorize(df.year)[0] + 1).astype(str)
  
  df1 = (df.pivot_table(index='name', columns='groups', values=['sale', 'year']))
  df1.columns = [''.join(col) for col in df1.columns]
  print (df1)
  
         sale1  sale2  sale3   year1   year2   year3
  name                                              
  Jason   41.0   31.0   32.0  2012.0  2013.0  2014.0
  Molly   24.0    NaN   31.0  2012.0     NaN  2014.0
  
  #But when dataframe is empty, factorize by pivot_table throws error
  
  df  = pd.DataFrame(columns=['sales','name','year'])
  df1 = (df.pivot_table(index='name', columns='groups', values=['sale', 'year']))
  df1.columns = [''.join(col) for col in df1.columns]
  print (df1)
  </code></pre>
  
  <p><code>DataError: No numeric types to aggregate</code></p>