2012-08-23 74 views
1

我有一個數據幀「DF」具有多級指數(「STK_ID」,「RPT_Date」)的多級索引中的一個系列:如何獲得在python熊貓

sales  cogs net_pft 
STK_ID RPT_Date         
600809 20120331 2214010000 509940000 492532000 
     20111231 4488150000 1077190000 780547000 
     20110930 3563660000 850789000 707537000 
     20110630 2894820000 703883000 658625000 

一些代碼:

>>> df.index.names 
['STK_ID', 'RPT_Date'] 

現在我想要得到的RPT_Date列的一系列值(20120331,20111231,20110930,20110630)由:

>>> df['RPT_Date'] # not work 

如何獲得這些數據呢?

+0

這意味着DF [ 'RPT_Date']無法獲取RPT_Date列的值。其實,python返回「KeyError:'沒有項目名爲RPT_Date'」 – bigbug

+0

'RPT_Date'不是你的DataFrame的列,所以這是正常的,這會拋出一個KeyError。 'RPT_Date'是索引中的一個級別,不能通過常用列索引訪問。 –

回答

2

我修好了。

df.index.get_level_values('RPT_Date') 

array([20120331, 20111231, 20110930, 20110630, 20110331, 201, 
     20100930, 20100630, 20100331, 20091231, 20090930, 20090630, 
     20090331, 20081231, 20080930, 20080630, 20080331, 20071231, 
     20070930, 20070630, 20070331, 20061231, 20060930, 20060630, 
     20060331], dtype=object) 

我覺得語法相當難看,爲什麼熊貓的開發商不接受df['RPT_Date']的簡單的方法?

1

,如果你這樣做,將工作:

df2 = df.reset_index() 
df2['RPT_Date']