Как создать MultiIndex DataFrame из трех DataFrame?
Есть три DataFrame:
df1
Mkt-RF SMB HML RMW CMA
2150.T 0,010326672 -0,00683384 -0,015922939 -0,034126955 -0,027433946
2160.T 0,00694333 0,042082707 -0,018469847 -0,030172206 -0,039305427
2183.T 0,016815498 0,027305594 -0,001010234 0,013051465 -0,001653873
df2
Date 2150.T 2160.T 2183.T
2009-06-01 0,053003446 -0,054048795 0,372307744
2009-07-01 0,171141096 -0,142859592 0,311659124
df3
Date 2150.T 2160.T 2183.T
2009-06-01 0,195873784 0,001239748 0,221638138
2009-07-01 0,388427363 0,006662823 0,094775308
Надо создать MultiIndex DataFrame по этому примеру:
result
df2 df3 df1 Mkt-RF SMB HML RMW CMA
2009-06-01 2150.T 0,053003446 0,195873784 0,010326672 -0,00683384 -0,015922939 -0,034126955 -0,027433946
2160.T -0,054048795 0,001239748 0,00694333 0,042082707 -0,018469847 -0,030172206 -0,039305427
2183.T 0,372307744 0,221638138 0,016815498 0,027305594 -0,001010234 0,013051465 -0,001653873
2009-07-01 2150.T 0,171141096 0,388427363 0,010326672 -0,00683384 -0,015922939 -0,034126955 -0,027433946
2160.T -0,142859592 0,006662823 0,00694333 0,042082707 -0,018469847 -0,030172206 -0,039305427
2183.T 0,311659124 0,094775308 0,016815498 0,027305594 -0,001010234 0,013051465 -0,001653873
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Попробуйте так:
res = (df2
.set_index("Date")
.stack()
.to_frame(name="df2")
.join(df3
.set_index("Date")
.stack()
.to_frame(name="df3"))
.rename_axis(["Date", "yr"]))
res = res.join(df1.rename_axis("yr"))
результат:
In [53]: res
Out[53]:
df2 df3 Mkt-RF SMB HML RMW CMA
Date yr
2009-06-01 2150.T 0,053003446 0,195873784 0,010326672 -0,00683384 -0,015922939 -0,034126955 -0,027433946
2160.T -0,054048795 0,001239748 0,00694333 0,042082707 -0,018469847 -0,030172206 -0,039305427
2183.T 0,372307744 0,221638138 0,016815498 0,027305594 -0,001010234 0,013051465 -0,001653873
2009-07-01 2150.T 0,171141096 0,388427363 0,010326672 -0,00683384 -0,015922939 -0,034126955 -0,027433946
2160.T -0,142859592 0,006662823 0,00694333 0,042082707 -0,018469847 -0,030172206 -0,039305427
2183.T 0,311659124 0,094775308 0,016815498 0,027305594 -0,001010234 0,013051465 -0,001653873