title: Merge 2 data frames by multiple columns, keep a row if there is a match in at least one column
body: <p>I have 2 data frames df_1 and df_2. They share 3 cols in common: permno, cusip, and ticker. 
  Each row of df_1 is a unique stock. The permno, cusip, and ticker in df_1 are used to identify the stock return in df_2. Sometimes one or two of these these variables are not available, but in each row at least one of the three is available. And I will use that value to look up the return in df_2. </p>
  
  <p>Can you suggest any (fast) way to merge df_1 and df_2 if there is a match in at least one of three columns permno, cusip, or ticker.</p>
  
  <p>df_1</p>
  
  <pre><code>id  permno  cusip  ticker
  1   1       11     AA
  2   NA      12     NA
  3   2       13     NA
  4   5       NA     NA
  </code></pre>
  
  <p>df_2 </p>
  
  <pre><code>permno  cusip  ticker  return  date
  1       11     NA      100     date_1
  7       15     BX      102     date_2
  2       NA     CU      103     date_3
  </code></pre>
  
  <p>Desired result</p>
  
  <pre><code>id  permno  cusip  ticker  return  date
  1   1       11     AA      100     date_1
  1   1       11     NA      100     date_1
  3   2       13     NA      103     date_3
  3   2       NA     CU      103     date_3
  </code></pre>