我有两个带有多列索引的数据框架。两个 Dataframe 的列数完全相同。
import pandas as pd
columns_df1 = pd.MultiIndex.from_tuples([
('A', 1, 'X', 'Y', 'Z'),
('B', 2, 'X', 'Y', 'Z'),
('C', 3, 'X', 'Y', 'Z')
], names=['level1', 'level2', 'level3', 'level4', 'level5'])
df1 = pd.DataFrame([[1, 2, 3]], columns=columns_df1)
columns_df2 = pd.MultiIndex.from_tuples([
('D', 4, 'P', 'Q', 'R'),
('E', 5, 'P', 'Q', 'R'),
('F', 6, 'P', 'Q', 'R')
], names=['level6', 'level7', 'level8', 'level9', 'level10'])
df2 = pd.DataFrame([[4, 5, 6]], columns=columns_df2)
print(df1)
print(df2)
level1 A B C
level2 1 2 3
level3 X X X
level4 Y Y Y
level5 Z Z Z
0 1 2 3
level6 D E F
level7 4 5 6
level8 P P P
level9 Q Q Q
level10 R R R
0 4 5 6
字符串
我需要将df2
的最后两列级别(level9和level10)添加到df1
。最好的办法是什么?
预期结果:
level1 A B C
level2 1 2 3
level3 X X X
level4 Y Y Y
level5 Z Z Z
level9 Q Q Q
level10 R R R
0 1 2 3
型
2条答案
按热度按时间56lgkhnf1#
一种方法是将两个索引压缩在一起:
字符串
输出量:
型
ui7jx7zq2#
使用DataFrames作为
pandas.MultiIndex.to_frame
/from_frame
和concat
的中间体:字符串
输出量:
型