2016-01-15 38 views
0
time      price 
2015-11-18 00:00:00.000 42.02 
2015-11-18 00:00:00.021 42.01 
2015-11-18 00:00:00.126 42.01 
2015-11-18 00:00:00.127 42.02 
Name: price, dtype: float64 

time      price 
2015-11-18 00:00:00.000 106.82 
2015-11-18 00:00:00.020 106.82 
2015-11-18 00:00:00.021 106.82 
2015-11-18 00:00:00.207 106.82 
2015-11-18 00:00:00.325 106.82 
Name: price, dtype: float64 

我想合併這兩個獨特的DataFrames(比方說,一個是stock1,一個是stock2)到多指數(由stock1和stock2)數據幀如下:有序合併兩個時間序列(每個都有獨特的DateTimeIndex)和填充?

      STOCK1   STOCK2 
time      price 
2015-11-18 00:00:00.000 106.82   42.02 
2015-11-18 00:00:00.126 106.82   42.01 
2015-11-18 00:00:00.127 106.82   42.02 
2015-11-18 00:00:00.020 106.82   42.02 
2015-11-18 00:00:00.021 106.82   42.01 
2015-11-18 00:00:00.021 106.82   42.01 
2015-11-18 00:00:00.207 106.82   42.01 
2015-11-18 00:00:00.325 106.82   42.01 

當我嘗試首先製作一個多重索引,我得到

ValueError: cannot reindex from a duplicate axis

嘗試ordered_merge,但它沒有得到正確的結果。

首先通過他們的工會重新索引Stock1和Stock2然後多重索引他們是否有意義?什麼是最好的過程來實現結果?

回答

0

我失去了最新信息,當我讀到它,但是,這個應該工作

In [37]: df = pd.concat([s1, s2], keys=['stock1', 'stock2'], axis=1).fillna(method='ffill') 

In [38]: df.columns = pd.MultiIndex.from_product(['price', df.columns]) 

In [39]: df 
Out[39]: 
       price 
      stock1 stock2 
00:00:00.000 42.02 106.82 
00:00:00.020 42.02 106.82 
00:00:00.021 42.01 106.82 
00:00:00.126 42.01 106.82 
00:00:00.127 42.02 106.82 
00:00:00.207 42.02 106.82 
00:00:00.325 42.02 106.82 

concat基本上沒有外部連接索引標籤/聯合在這裏。 我有列級從你如何輸入,因爲他們共享最外層的水平翻轉。如果你真的想要它在你的例子中翻轉最後一個到pd.MultiIndex.from_product([df.columns, 'price'])

相關問題