2017-06-06 1 views
2

私はpandasのMultiIndexを初めて使っていますが、私はそれが参考になる状況があります。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 

私はそうと、日付と最後の名前を使用してこのデータをサブセットしたい:

jは datetime.dateを入力している
df.loc[j.strftime('%Y-%m-%d'),Last_Name] 

私はそうように構成されたマルチインデックス(ON_SCENEとLAST)とDFを持っています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

ありがとう!私は列について忘れてしまった。最初のものは私のために働きましたが、最も理にかなっています(これを見つけた人には、ソリューションが動作する前に 'df.sort_index(inplace = True)'を実行するために必要な 'lexsort'エラーを受けました)。 – jtam

+0

@jtam、うれしく思っています。はい、パンダは、スライスを使用しているときに字句的にソートされたインデックスを期待しています... – MaxU

関連する問題