有没有办法连接具有不同列级别的多索引 Pandas 数据帧?

Is there a way to concatenate multiindex Pandas Dataframes with different column levels?

我正在从一些 csv 文件中读取数据,典型的数据框如下所示:

Type  Animal  Animal   Animal
Color Black   Black    Red
Value 0       0        0
Value 0.1     0.2      0.3
Value 0.1     0.4      0.5

所以,基本上,对于每只动物,对于每一种颜色,都有一个值数组。要读取数据,我使用以下代码行:

df1 = pd.read_csv(csv_path, header = [0,1])

我有另一个类似的数据框,但多了一个 header 行,看起来像这样:

Type  Animal  Tool     Tool
Color Black   Red      Green
ID    1       2        3 
Value 0       0        0
Value 0.1     0.2      0.3
Value 0.1     0.4      0.5

我是这样读取上面的数据框的:

df2 = pd.read_csv(csv_path, header = [0,1,2])

现在我想要一个包含所有数据的数据框,如下所示:

Type  Animal  Animal   Animal  Animal  Tool     Tool
Color Black   Black    Red     Black   Red      Green
ID                             1       2        3    
Value 0       0        0       0       0        0
      0.1     0.2      0.3     0.1     0.2      0.3
      0.1     0.4      0.5     0.1     0.4      0.5
          

对于这种类型的数据,有什么办法可以做到这一点吗?

df1 = df1.T
df1['ID'] = None
df1 = df1.set_index('ID', append=True).T

pd.concat([df1, df2], axis=1)