2017-06-06 31 views
2

我對熊貓的MultiIndex很陌生,但我有一種情況,它會有幫助。我有一個結構爲這麼多指標(ON_SCENE和最後一臺)DF:使用MultiIndex進行子集設置

       ID     
ON_SCENE   LAST              
2016-05-05 03:58:54 last1 1000    
2016-05-05 17:23:39 last1 1001    
2016-05-05 18:20:50 last1 1002    
2016-05-05 21:30:29 last2 1003   
2016-05-05 22:33:19 last2 1004 
2016-05-05 23:30:23 last3 1005 
2016-05-06 00:08:34 last3 1006 
2016-05-06 01:33:54 last3 1007 

我想用一個日期和最後一個名稱,以便於子集這樣的數據:

df.loc[j.strftime('%Y-%m-%d'),Last_Name] 

,其中的J型datetime.date Last_Name是帶姓的str。不幸的是,我不斷收到一個KeyError。我也嘗試過:

df[j.strftime('%Y-%m-%d')] 
    df[Last_Name] 

但這些也給我一個KeyErrors。不知道我在做什麼錯了?

回答

2
In [103]: x.loc[('2016-05-05', 'last2'), :] 
Out[103]: 
          ID 
ON_SCENE   LAST 
2016-05-05 21:30:29 last2 1003 
2016-05-05 22:33:19 last2 1004 

或使用pd.IndexSlice:

In [104]: idx = pd.IndexSlice 

In [105]: x.loc[idx['2016-05-05':'2016-05-06', 'last3'], :] 
Out[105]: 
          ID 
ON_SCENE   LAST 
2016-05-05 23:30:23 last3 1005 
2016-05-06 00:08:34 last3 1006 
2016-05-06 01:33:54 last3 1007 

Pandas Documentation with examples

+0

謝謝!我忘記了列。第一個爲我工作,並且是最有意義的(儘管對於其他人來說,我發現了一個'lexsort'錯誤,要求我在解決方案工作之前運行'df.sort_index(inplace = True)'。 – jtam

+0

@jtam,很高興我能幫上忙。是的,當使用切片時,Pandas希望使用詞彙排序的索引... – MaxU

相關問題