title: Pandas df read every row, return SQL query with a new column in df
body: <p>I have the following pandas dataframe as df and I want to query each row of <code>df['item']</code> that will return corresponding <code>item_description</code> from a SQL Server database and populate df with columns 'id', 'qty', 'item', 'item_description'</p>
  
  <pre><code>|  id | qty  | item |
  +-----+------+------+
  | 001 |  700 | CB04 |
  | 002 |  500 |      |
  | 003 | 1500 | AB01 |
  </code></pre>
  
  <p>I was doing the following:</p>
  
  <pre><code>query = "select item_description from item_book WHERE item in {}".format(tuple(df['item']))
  </code></pre>
  
  <p>and return it as a df with </p>
  
  <pre><code>pd.read_sql_query(query, cnxn)
  </code></pre>
  
  <p>Results:</p>
  
  <pre><code>| item_description |
  +------------------+
  | apple            |
  | orange           |
  </code></pre>
  
  <p>I was planning to join the two dfs together, doing this may not work since I have an empty value in 2nd row of df and my query returned only two rows. </p>
  
  <p>Is there a more efficient way to do this.</p>