合并 3 个多索引数据帧以制作一个多索引数据帧

时间:2021-01-06 07:58:13

标签: python pandas multi-index

我有 3 个数据框:

df1 是

                   Total  Total  Total
Tool Technology     One    Two   Three
Alt    AI            15     6     9  

df2 是

                   Check  Check  Check
Tool Technology     One    Two   Three
Alt    AI           10      4     6

df3 是

                   Uncheck  Uncheck  Uncheck
Tool Technology     One      Two      Three
Alt    AI           18        11        7  

合并后的最终数据框应该是这样的

                   Total  Total  Total   Check  Check  Check   Uncheck   Uncheck  Uncheck
Tool Technology     One    Two   Three    One    Two   Three    One       Two      Three
Alt    AI           10      4     6        15     6     9       18         11        7 

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

三种合并多索引行的方法。目前尚不清楚您的 DataFrame 是否也具有多索引列。使用to_dict()方法

提供
import io
df1 = pd.read_csv(io.StringIO("""                   Total  Total  Total
Tool Technology     One    Two   Three
Alt    AI            15     6     9  """), sep="\s+", header=1).set_index(["Tool","Technology"])
df1 = df1.rename(columns={c:f"Total {c}" for c in df1.columns})
df2 = pd.read_csv(io.StringIO("""                   Check  Check  Check
Tool Technology     One    Two   Three
Alt    AI           10      4     6"""), sep="\s+", header=1).set_index(["Tool","Technology"])
df2 = df2.rename(columns={c:f"Check {c}" for c in df2.columns})

print(pd.concat([df1,df2], axis=1).to_string())
print(df1.join(df2).to_string())
print(df1.merge(df2, on=["Tool","Technology"]).to_string())

输出

                 Total One  Total Two  Total Three  Check One  Check Two  Check Three
Tool Technology                                                                      
Alt  AI                 15          6            9         10          4            6
                 Total One  Total Two  Total Three  Check One  Check Two  Check Three
Tool Technology                                                                      
Alt  AI                 15          6            9         10          4            6
                 Total One  Total Two  Total Three  Check One  Check Two  Check Three
Tool Technology                                                                      
Alt  AI                 15          6            9         10          4            6