append columns to pandas dataframe with duplicate rows
<p>How can I append the columns from the <code>data</code> dataframe to the <code>q</code> dataframe, while maintaining the same order and number of rows in <code>q</code>? The challenge is that there can be duplicates in <code>data</code> and <code>q</code>.</p>

<pre><code>In [2]: data = pd.DataFrame([[3,4,333],[5,6,111],[2,9,222],[5,6,111]], columns=['a','b','id'])

In [3]: data.index = data.id

In [4]: q = pd.DataFrame([[333],[111]], columns=['id'])

In [5]: q.index = q.id

In [6]: data
Out[6]: 
     a  b   id
id            
333  3  4  333
111  5  6  111
222  2  9  222
111  5  6  111

In [7]: q
Out[7]: 
      id
id      
333  333
111  111
</code></pre>

<p>The result should look something like:</p>

<pre><code>   a  b   id
0  3  4  333
1  5  6  111
</code></pre>

<p>Some stuff that doesn't work:</p>

<pre><code>pd.merge(q, data, how='left')
data.ix[q.iloc[:,0],['a','b','id']]
</code></pre>

<p>I would prefer to not do a <code>unique</code> on <code>data</code> as this would create another large object.</p>