假设我有
l1 = [[1,2], [3,4], [5,6]]
l2 = [[10,20], [30, 40], [50, 60]]
df1 = pd.DataFrame(l1)
df2 = pd.DataFrame(l2)
df1.index = ["t1", "t2", "t3"]
df2.index = ["t1", "t2", "t3"]
df1.columns = ["A", "B"]
df2.columns = ["A", "B"]
# such that
print(df1)
A B
t1 1 2
t2 3 4
t3 5 6
print(df2)
A B
t1 10 20
t2 30 40
t3 50 60
# How do I easily create a multi-index dataframe df3 with the structure
print(df3)
df1 df2
t1
A 1 10
B 2 20
t2
A 3 30
B 4 40
t3
A 5 50
B 6 60
使多索引为[t1,t2,t3],[A,B],列为[df 1,df 2]?
我知道您可以通过pd.MultiIndex或其他方法创建多个索引,但我想要一个简单的解决方案,您可以直接从2/多个 Dataframe 直接创建它。
2条答案
按热度按时间btxsgosb1#
您将需要使用整形和连接的组合。
df.stack
以调整每个DataFrame的形状,使其列成为行索引的第二级行。这将使每个DataFrame
变为更长的Series
。pd.concat
以将这些新整形的Series
连接在一起。kgsdhlau2#
首先是
concat
,然后是stack
:输出: