Pandas 包含多索引数据帧
我有一个多索引数据框架,外层索引由股票名称组成,内层索引由日期组成Pandas 包含多索引数据帧,pandas,concatenation,multi-index,Pandas,Concatenation,Multi Index,我有一个多索引数据框架,外层索引由股票名称组成,内层索引由日期组成 Open High Low Close AAPL 2010-01-04 213.429998 214.499996 212.380001 214.009998 2010-01-08 210.299994 212.000006 209.060005 211.980005 OPK 2010-01-
Open High Low Close
AAPL 2010-01-04 213.429998 214.499996 212.380001 214.009998
2010-01-08 210.299994 212.000006 209.060005 211.980005
OPK 2010-01-04 213.429998 214.499996 212.380001 214.009998
2010-01-08 210.299994 212.000006 209.060005 211.980005
我有一个新的数据框,其中一些日期没有包含在原始数据框中,我想附加它们
Open High Low Close
AAPL 2010-01-09 219.429998 219.499996 212.380001 214.009998
2010-01-10 219.299994 219.000006 209.060005 211.980005
OPK 2010-01-09 219.429998 219.499996 212.380001 214.009998
2010-01-10 219.299994 219.000006 209.060005 211.980005
所以我想要的结果是
Open High Low Close
AAPL 2010-01-04 213.429998 214.499996 212.380001 214.009998
2010-01-08 210.299994 212.000006 209.060005 211.980005
2010-01-09 219.429998 219.499996 212.380001 214.009998
2010-01-10 219.299994 219.000006 209.060005 211.980005
2010-01-04 213.429998 214.499996 212.380001 214.009998
2010-01-08 210.299994 212.000006 209.060005 211.980005
OPK 2010-01-09 219.429998 219.499996 212.380001 214.009998
2010-01-10 219.299994 219.000006 209.060005 211.980005
我试过这些的变体
pd.concat([stocks_df, df])
pd.concat([stocks_df, df], levels = [stocks_df.index] )
但似乎找不到解决办法 我认为您需要:
据我所知,第一种变体应该有效。这似乎有效。然而,奇怪的是,列的顺序又变了,就像在新的df中的mixed-up一样。我得到了
索引(['15\u Avg\u Vol','20\u Avg\u Vol','30\u Avg\u Vol','5days','7days','7days\u 10daysAvg','9\u Avg\u Vol','Adj Close','Close','Daily\u Change','High','Low','Open Volume','changed'
dtype='object我关注的df越小,列就越少(仅上面OP中的列)但是,它们都以['Open'、'High'、'Low'、'Close'、'Volume']
开头,因此不确定更改订单的原因。
df = pd.concat([stocks_df, df]).sort_index()
print (df)
Open High Low Close
AAPL 2010-01-04 213.429998 214.499996 212.380001 214.009998
2010-01-08 210.299994 212.000006 209.060005 211.980005
2010-01-09 219.429998 219.499996 212.380001 214.009998
2010-01-10 219.299994 219.000006 209.060005 211.980005
OPK 2010-01-04 213.429998 214.499996 212.380001 214.009998
2010-01-08 210.299994 212.000006 209.060005 211.980005
2010-01-09 219.429998 219.499996 212.380001 214.009998
2010-01-10 219.299994 219.000006 209.060005 211.980005