title: Pandas aligning multiple dataframes with TimeStamp index
body: <p>This has been the bane of my life for the past couple of days. I have numerous Pandas Dataframes that contain time series data with irregular frequencies. I try to align these into a single dataframe. </p>
  
  <p>Below is some code, with representative dataframes, <code>df1</code>, <code>df2</code>, and <code>df3</code> ( I actually have n=5, and would appreciate a solution that would work for all <code>n&gt;2</code>):</p>
  
  <pre><code># df1, df2, df3 are given at the bottom
  import pandas as pd
  import datetime
  
  # I can align df1 to df2 easily
  df1aligned, df2aligned = df1.align(df2)
  # And then concatenate into a single dataframe
  combined_1_n_2 = pd.concat([df1aligned, df2aligned], axis =1 )
  # Since I don't know any better, I then try to align df3 to combined_1_n_2  manually:
  combined_1_n_2.align(df3)
  error: Reindexing only valid with uniquely valued Index objects
  </code></pre>
  
  <p>I have an idea why I get this error, so I get rid of the duplicate indices in <code>combined_1_n_2</code> and try again:</p>
  
  <pre><code>combined_1_n_2 = combined_1_n_2.groupby(combined_1_n_2.index).first()
  combined_1_n_2.align(df3) # But stll get the same error
  error: Reindexing only valid with uniquely valued Index objects
  </code></pre>
  
  <p>Why am I getting this error? Even if this worked, it is completely manual and ugly. How can I align >2 time series and combine them in a single dataframe?</p>
  
  <p><strong>Data:</strong></p>
  
  <pre><code>df1 = pd.DataFrame( {'price' : [62.1250,62.2500,62.2375,61.9250,61.9125 ]}, 
                       index = [pd.DatetimeIndex([datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S.%f')])[0] 
                       for s in ['2008-06-01 06:03:59.614000', '2008-06-01 06:03:59.692000', 
                       '2008-06-01 06:15:42.004000', '2008-06-01 06:15:42.083000','2008-06-01 06:17:01.654000' ] ])   
  
  df2 = pd.DataFrame({'price': [241.0625, 241.5000, 241.3750, 241.2500, 241.3750 ]},
                      index = [pd.DatetimeIndex([datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S.%f')])[0] 
                       for s in ['2008-06-01 06:13:34.524000', '2008-06-01 06:13:34.602000', 
                       '2008-06-01 06:15:05.399000', '2008-06-01 06:15:05.399000','2008-06-01 06:15:42.082000' ] ])   
  
  df3 = pd.DataFrame({'price': [67.656, 67.875, 67.8125, 67.75, 67.6875 ]},
                      index = [pd.DatetimeIndex([datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S.%f')])[0] 
                       for s in ['2008-06-01 06:03:52.281000', '2008-06-01 06:03:52.359000', 
                       '2008-06-01 06:13:34.848000', '2008-06-01 06:13:34.926000','2008-06-01 06:15:05.321000' ] ])   
  </code></pre>