[英]How to do add/merge/concat two or more multiindex pandas dataframe in python to get below output?
這是我的第一個 Multiindex DataFrame df0
Attributes Adj Close Close High
Symbols AARON AART AARON AART AARON AART
Date
2021-12-01 111.3 512.2 111.3 512.2 114.0 519.5
2021-12-02 116.6 512.5 116.6 512.5 116.8 519.9
2021-12-03 117.2 522.3 117.2 522.3 122.5 526.0
下一個 DataFrame df1
Attributes Adj Close Close High
Symbols FINP FLEX FINP FLEX FINP FLEX
Date
2021-12-01 204.4 18.0 204.4 18.0 213.6 18.0
2021-12-02 204.5 18.7 204.5 18.7 206.3 18.9
2021-12-03 200.8 19.5 200.8 19.5 205.8 19.6
現在我想得到最終的 dataFrame df為
Attributes Adj Close Close High
Symbols AARON AART FINP FLEX AARON AART FINP FLEX AARON AART FINP FLEX
Date
2021-12-01 111.3 512.2 204.4 18.0 111.3 512.2 204.4 18.0 114.0 519.5 213.6 18.0
2021-12-02 116.6 512.5 204.5 18.7 116.6 512.5 204.5 18.7 116.8 519.9 206.3 18.9
2021-12-03 117.2 522.3 200.8 19.5 117.2 522.3 200.8 19.5 122.5 526.0 205.8 19.6
Which function/method should I use to get desired output
注意:這里添加了兩個數據幀的列信息
df0.columns
MultiIndex([('Adj Close', 'AARON'),
('Adj Close', 'AART'),
( 'Close', 'AARON'),
( 'Close', 'AART'),
( 'High', 'AARON'),
( 'High', 'AART')],
names=['Attributes', 'Symbols'])
df1.columns
MultiIndex([('Adj Close', 'AARON'),
('Adj Close', 'AART'),
( 'Close', 'AARON'),
( 'Close', 'AART'),
( 'High', 'AARON'),
( 'High', 'AART')],
names=['Attributes', 'Symbols'])
您可以簡單地pd.concat
它們,並使用groupby
和level=0
(按索引的第 0(1)級分組)+ first
:
df = pd.concat([df0, df1]).groupby(level=0).first()
Output:
>>> df
Adj Close Close High
AARON AART FINP FLEX AARON AART FINP FLEX AARON AART FINP FLEX
Symbols
2021-12-01 111.3 512.2 204.4 18.0 111.3 512.2 204.4 18.0 114.0 519.5 213.6 18.0
2021-12-02 116.6 512.5 204.5 18.7 116.6 512.5 204.5 18.7 116.8 519.9 206.3 18.9
2021-12-03 117.2 522.3 200.8 19.5 117.2 522.3 200.8 19.5 122.5 526.0 205.8 19.6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.