2017-08-13 126 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