嗨,我有以下数据框
我想将Df2中M / O列的元素添加到Df1中A / O列的元素。对于Df2 M / L到Df1 A / L同样如此。
这两个数据框的列名都有2个级别。
我正在尝试以下操作,但没有将Df2的第五行添加到Df1:
Df1 = {('A','O'): [5, 6, 7, 8], ('A','L'): [9, 10, 11, 12], ('G','O'): [2, 2, 2, 2], ('G','L'): [3, 3, 3, 3]}
index1 =[1,2,3,4]
Df1 = pd.DataFrame(data=Df1, index=index1)
Df2 = {('M','O'): [1, 2, 3, 4], ('M','L'): [5, 6, 7, 8], ('S','O'): [1, 1, 1, 1], ('S','L'): [1, 1, 1, 1]}
index2 =[1,2,3,5]
Df2 = pd.DataFrame(data=Df2, index=index2)
for profile in ["O", "L"]:
Df1[("A", profile)] = Df1[("A", profile)].add(Df2[("M", profile)], fill_value=0)
你知道为什么吗?
谢谢
答案 0 :(得分:1)
您可以将xs
与drop_level=False
一起使用,以返回MultiIndex
DataFrame,然后将rename
的顶级与A
的{{1}}级别对齐:
Df1