我已经看到很多关于如何按层次排列数据帧行索引的示例,但我正在尝试对列执行相同的操作并且不理解语法:
我正在阅读csv文件中的内容,如下所示
df=pandas.read_csv("data.csv")
和data.csv包含类似的内容:
rno,marktheory1,marklab1,marktheory2,marklab2
1,78,45,34,54
2,23,54,87,46
所以在[1]中:df 给出
rno mark1 lab1 mark2 lab2
0 1 78 45 34 54
1 2 23 54 87 46
我想要做的是在列中添加分层索引甚至类似于标记的内容,以便它们看起来像这样:
Subject1 Subject2
rno mark1 lab1 mark2 lab2
0 1 78 45 34 54
1 2 23 54 87 46
答案 0 :(得分:2)
以下是适合您的快速解决方案:
data = pd.read_csv('data.csv')
>>> arrays = [[ '', 'Subject1', 'Subject1', 'Subject2', 'Subject2'], data.columns]
>>> df = pd.DataFrame(data.values, columns=arrays)
>>> print df
Subject1 Subject2
rno mark1 lab1 mark2 lab2
0 1 78 45 34 54
1 2 23 54 87 46
[2 rows x 5 columns]
另一种做同样的方法:
>>> data = pd.read_csv('data.csv')
>>> data_pieces = [data.ix[:, [0]], data.ix[:, [1, 2]], data.ix[:, [3,4]]]
>>> data = pd.concat(data_pieces, axis=1, keys=['','Subject1', 'Subject2'])
>>> print data
Subject1 Subject2
rno mark1 lab1 mark2 lab2
0 1 78 45 34 54
1 2 23 54 87 46
[2 rows x 5 columns]