在下面的代码中,如何将df2合并到df3以获得类似df4
的输出。 df3是一个多标头数据帧,在最后的输出中,我只需要显示标头的第一级即可。如何实现此目的
>>> df = pd.DataFrame({'Maths':[95,96,97,98] ,'Science': [91,92,93,94]})
>>> df2=pd.DataFrame({'Languages': ['English','Hindi','French','Spanish']})
>>> header = pd.MultiIndex.from_product([['Subjects'],['Maths', 'Science']])
>>> df3 = pd.DataFrame(df.values.tolist(), columns=header)
>>> df3
Subjects
Maths Science
0 95 91
1 96 92
2 97 93
3 98 94
>>> df2
Languages
0 English
1 Hindi
2 French
3 Spanish
Output df4
Subjects Languages
Maths Science
0 95 91 English
1 96 92 Hindi
2 97 93 French
3 98 94 Spanish
最佳答案
首先将MultiIndex
添加到df2
,然后添加concat
或join
:
df2.columns = [df2.columns, ['']]
#another solution
#df2.columns = pd.MultiIndex.from_arrays([df2.columns, ['']])
df4 = pd.concat([df3, df2], axis =1)
#another solution
#df4 = df3.join(df2)
print (df4)
Subjects Languages
Maths Science
0 95 91 English
1 96 92 Hindi
2 97 93 French
3 98 94 Spanish
关于python - 将一个数据框中的列添加到 Pandas 中的muliheader数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51879679/