2017-08-13 152 views
1

我可以將兩個DataFrames df1 & df2連接成一個df,但我無法得到我需要的「堆棧」結構 - 請參閱附加圖像。將兩個DataFrames連接成一個共享相同DateIndex的MultiIndex

我如何讓df1 & df2結合共享一個像「堆棧」結構中的DateTimeIndex?

df1 & df2 df

+1

所期望的輸出?如果缺少第一級Multiindex中的日期時間,它只是顯示事物,實際上它是重複的。你可以檢查它是否添加'.reset_index()' – jezrael

+1

你需要'.unstack()'? – jezrael

+0

.stack()或.unstack()產生一個Series;我需要一個帶MultiIndex的DataFrame。 – artDeco

回答

1

我想你需要to_frame

df = pd.DataFrame({'AAPL':[1,3,4], 
        'GOOG_L':[6,7,8]}, index=pd.date_range('2012-01-01', periods=3)) 
print (df) 
      AAPL GOOG_L 
2012-01-01  1  6 
2012-01-02  3  7 
2012-01-03  4  8 

df1 = df.stack().to_frame('col') 
print (df1) 
        col 
2012-01-01 AAPL  1 
      GOOG_L 6 
2012-01-02 AAPL  3 
      GOOG_L 7 
2012-01-03 AAPL  4 
      GOOG_L 8 

df2 = df.unstack().to_frame('col') 
print (df2) 
        col 
AAPL 2012-01-01 1 
     2012-01-02 3 
     2012-01-03 4 
GOOG_L 2012-01-01 6 
     2012-01-02 7 
     2012-01-03 8 
+1

絕對是最快捷的解決方案!非常感謝你! – artDeco