@@ -844,15 +844,36 @@ def test_getitem_multiindex(self):
844
844
# GH 5725
845
845
# the 'A' happens to be a valid Timestamp so the doesn't raise the appropriate
846
846
# error, only in PY3 of course!
847
- index = MultiIndex (levels = [['A ' , 'B' , 'C' ], [0 , 26 , 27 , 37 , 57 , 67 , 75 , 82 ]],
847
+ index = MultiIndex (levels = [['D ' , 'B' , 'C' ], [0 , 26 , 27 , 37 , 57 , 67 , 75 , 82 ]],
848
848
labels = [[0 , 0 , 0 , 1 , 2 , 2 , 2 , 2 , 2 , 2 ], [1 , 3 , 4 , 6 , 0 , 2 , 2 , 3 , 5 , 7 ]],
849
849
names = ['tag' , 'day' ])
850
850
arr = np .random .randn (len (index ),1 )
851
851
df = DataFrame (arr ,index = index ,columns = ['val' ])
852
+ result = df .val ['D' ]
853
+ expected = Series (arr .ravel ()[0 :3 ],name = 'val' ,index = Index ([26 ,37 ,57 ],name = 'day' ))
854
+ assert_series_equal (result ,expected )
855
+
856
+ def f ():
857
+ df .val ['A' ]
858
+ self .assertRaises (KeyError , f )
859
+
860
+ def f ():
861
+ df .val ['X' ]
862
+ self .assertRaises (KeyError , f )
863
+
864
+ # A is treated as a special Timestamp
865
+ index = MultiIndex (levels = [['A' , 'B' , 'C' ], [0 , 26 , 27 , 37 , 57 , 67 , 75 , 82 ]],
866
+ labels = [[0 , 0 , 0 , 1 , 2 , 2 , 2 , 2 , 2 , 2 ], [1 , 3 , 4 , 6 , 0 , 2 , 2 , 3 , 5 , 7 ]],
867
+ names = ['tag' , 'day' ])
868
+ df = DataFrame (arr ,index = index ,columns = ['val' ])
852
869
result = df .val ['A' ]
853
870
expected = Series (arr .ravel ()[0 :3 ],name = 'val' ,index = Index ([26 ,37 ,57 ],name = 'day' ))
854
871
assert_series_equal (result ,expected )
855
872
873
+ def f ():
874
+ df .val ['X' ]
875
+ self .assertRaises (KeyError , f )
876
+
856
877
def test_setitem_dtype_upcast (self ):
857
878
858
879
# GH3216
0 commit comments