title: Is it efficient to join multiple dataframes using chained "join", rather than merge or concat?
body: <p>Not being an expert in code efficiency (yet) &amp; best pythonic code writing (yet), I would like to ask the experts here if the following code is the best to <code>join</code> dataframes that have a common Date Index, or if merge or concat may be better: </p>
  
  <pre><code>data = df1.join(df2).join(df3).join(df4).join(df5).dropna()
  </code></pre>
  
  <p>I used the <code>.dropna()</code> suffix at the end to cancel out rows where a single <code>NaN</code> occurs. </p>
  
  <p>NB: the reason why <code>NaN</code> occurs in this dataset is because I have created dataframes that are in fact shifted versions of other dataframes (using <code>.shift(n)</code> ), which means that <code>NaN</code>s creep in at the head of the shifted dataframes.</p>
  
  <p>I intend to use this code in many other applications, so wanted to use the best possible methodology (i.e. not make unnecessary use of memory, take too much time to process, use the correct join/merg/concat constructs). </p>