2014-03-07 32 views
0

我已經看到了很多關於如何分級安排數據幀排索引的例子,但我試圖做的列相同的,我不理解的語法:應用層次還是多指標,以熊貓列

我讀取來自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 

回答

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]