title: apply() returns a DataFrame instead of Series
body: <pre><code>In the folwwing code:
  import pandas as pd
  import sqlite3
  import math
  import numpy
  con = sqlite3.connect(r'C:\Python34\factbook.db')
  facts = pd.read_sql_query('select * from facts;', con)
  facts.dropna(inplace=True)
  facts = facts[facts['area_land']!=0][:]
  facts = facts[facts['population']!=0][:]
  facts.reset_index(drop=True, inplace=True)
  def pop_50(name):
      pop = facts[facts['name'] == name]['population']
      perc = facts[facts['name'] == name]['population_growth']
      new_pop = pop*(math.e**(35*perc))
      return new_pop
  
  
  x=pd.Series(data=facts['name'])
  z = x.apply(pop_50) 
  </code></pre>
  
  <p>x is a Series:</p>
  
  <pre><code>0                                        Afghanistan
  1                                            Albania
  2                                            Algeria
  3                                            Andorra
  4                                             Angola
  5                                Antigua and Barbuda
  6                                          Argentina
  7                                            Armenia
  </code></pre>
  
  <p>and so on...</p>
  
  <p>But z isn't. Here is a link for seeing what it is (a DataFrame):
  <a href="https://www.scribd.com/document/357697929/Doc1" rel="nofollow noreferrer">https://www.scribd.com/document/357697929/Doc1</a></p>
  
  <p>I cant understand why. The pop_50 func gives back a single result (I tested it), so why is zed a DataFrame?
  How can pop_50 return a series? it takes a row (where facts['name']==name) and from it a single value (under the population column) than call it pop. it than do the same idea for perc. new_pop is a math combination of 2 singel values so its a single value as well, and the func return just that, dont it? </p>
  
  <p>Thank you.</p>