2016-12-13 54 views
1

我有兩個具有相同列('打開','關閉','卷'等)的面板,major_axis是日期時間和minor_axis是股票的符號。熊貓:如何通過合併與另一個面板沿着短軸延伸

我想加入/合併在一起,使列不會改變,但我現在有沿着短軸的所有股票符號。

請注意,它不能保證在major_axis中的日期時間將完全相同,我需要一個外部連接(或等效)。

正如所建議的文檔我做:

p1.join(p2, how='outer') 

,但得到的錯誤:

ValueError: columns overlap but no suffix specified: Index([u'Open', u'High', u'Low', u'Close', u'Volume', u'Adj Close'], dtype='object') 

如果我指定後綴我結束了12列。

有什麼建議嗎?

回答

1

使用pd.concataxis=2

例如

tidx = pd.date_range('2015-03-31', periods=3, freq='M') 

list1 = ['IBM', 'APPL'] 
list2 = ['CVX', 'BHP'] 

items = ['Open', 'Close', 'High', 'Low'] 

p1 = pd.Panel(np.random.rand(4, 3, 2), items, tidx, list1) 
p2 = pd.Panel(np.random.rand(4, 3, 2), items, tidx, list2) 

# <- This is the answer -> 
pd.concat([p1, p2], axis=2).to_frame() 

enter image description here

+0

該工程的感謝。據推測,我可以將join ='outer'傳遞給concat方法來處理日期時間不完全相同? (例如倫敦與紐約假期) –

+0

@RichardH''outer''是默認的......並且是。 – piRSquared

+0

好,謝謝 –