title: Duplicated rows when merging dataframes in Python
body: <p>I am currently merging two dataframes with an outer join. However, after merging, I see all the rows are duplicated even when the columns that I merged upon contain the same values.</p>
  <p>Specifically, I have the following code.</p>
  <pre class="lang-py prettyprint-override"><code>merged_df = pd.merge(df1, df2, on=['email_address'], how='inner')
  </code></pre>
  <p>Here are the two dataframes and the results.</p>
  <p><code>df1</code></p>
  <pre class="lang-none prettyprint-override"><code>          email_address    name   surname
  0  john.smith@email.com    john     smith
  1  john.smith@email.com    john     smith
  2       elvis@email.com   elvis   presley
  </code></pre>
  <p><code>df2</code></p>
  <pre class="lang-none prettyprint-override"><code>          email_address    street  city
  0  john.smith@email.com   street1    NY
  1  john.smith@email.com   street1    NY
  2       elvis@email.com   street2    LA
  </code></pre>
  <p><code>merged_df</code></p>
  <pre class="lang-none prettyprint-override"><code>          email_address    name   surname    street  city
  0  john.smith@email.com    john     smith   street1    NY
  1  john.smith@email.com    john     smith   street1    NY
  2  john.smith@email.com    john     smith   street1    NY
  3  john.smith@email.com    john     smith   street1    NY
  4       elvis@email.com   elvis   presley   street2    LA
  5       elvis@email.com   elvis   presley   street2    LA
  </code></pre>
  <p>My question is, shouldn't it be like this?</p>
  <p>This is how I would like my <code>merged_df</code> to be like.</p>
  <pre class="lang-none prettyprint-override"><code>          email_address    name   surname    street  city
  0  john.smith@email.com    john     smith   street1    NY
  1  john.smith@email.com    john     smith   street1    NY
  2       elvis@email.com   elvis   presley   street2    LA
  </code></pre>
  <p>Are there any ways I can achieve this?</p>