title: Pandas left join on duplicate keys but without increasing the number of columns
body: <p>I'm trying to combine two different dataframes I've imported in python with pandas. They are the results of some eye-tracking I've done. One of them however contains both the class and method the user has gazed upon, meaning that for every row dataframe1 has dataframe2 has an extra one. Now this doesn't happen in every row so I can't just duplicate the rows, but what I was thinking was to add another row every time the index of dataframe2 had two of the same indices. Kinda like this:</p>
  
  <pre><code>dataframe1 = pd.DataFrame({'index':[1,2,3],'a':['asd','fgh','qwe'],'b':['dsa','hgf','ewq'],'c':['sad','gfh','wqe']})
  dataframe1=dataframe1[['index','a','b','c']]
  dataframe1
     index    a    b    c
  0      1  asd  dsa  sad
  1      2  fgh  hgf  gfh
  2      3  qwe  ewq  wqe
  
  dataframe2 = pd.DataFrame({'index':[1,1,2,3,3],'d':['zxc','cxz','xzc','zxc','xcz']})
  dataframe2=dataframe2[['index','d']]
  dataframe2
     index    d
  0      1  zxc
  1      1  cxz
  2      2  xzc
  3      3  zxc
  4      3  xcz
  </code></pre>
  
  <p>Expected Result:</p>
  
  <pre><code>index, a, b, c, d
  1, asd, dsa, sad, zxc
  1, nan, nan, nan, cxz
  2, fgh, hgf, gfh, xzc
  3, qwe, ewq, wqe, zxc
  3, nan, nan, nan, xcz
  </code></pre>
  
  <p>Any built in functions to use? The values can also just be the values of the previous line with the same index.</p>