将两个 DataFrame 连接成一个共享相同 DateTimeIndex 的 MultiIndex
Concatenate two DataFrames into one MultiIndex sharing the same DateTimeIndex
我可以将两个 DataFrame df1 和 df2 连接成一个 df,但我无法获得我需要的 "stack" 结构 - 请参阅附图。
如何让 df1 和 df2 结合起来共享一个 DateTimeIndex,就像 "stack" 结构中的那个一样?
我觉得你需要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
我可以将两个 DataFrame df1 和 df2 连接成一个 df,但我无法获得我需要的 "stack" 结构 - 请参阅附图。
如何让 df1 和 df2 结合起来共享一个 DateTimeIndex,就像 "stack" 结构中的那个一样?
我觉得你需要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