@@ -997,8 +997,8 @@ def test_get_level_values(self):
997
997
exp = CategoricalIndex ([1 , 2 , 3 , 1 , 2 , 3 ])
998
998
tm .assert_index_equal (index .get_level_values (1 ), exp )
999
999
1000
- @pytest .mark .xfail (reason = 'GH 17924 (returns Int64Index with float data)' )
1001
1000
def test_get_level_values_int_with_na (self ):
1001
+ # GH 17924
1002
1002
arrays = [['a' , 'b' , 'b' ], [1 , np .nan , 2 ]]
1003
1003
index = pd .MultiIndex .from_arrays (arrays )
1004
1004
result = index .get_level_values (1 )
@@ -1024,14 +1024,26 @@ def test_get_level_values_na(self):
1024
1024
1025
1025
arrays = [['a' , 'b' , 'b' ], pd .DatetimeIndex ([0 , 1 , pd .NaT ])]
1026
1026
index = pd .MultiIndex .from_arrays (arrays )
1027
- values = index .get_level_values (1 )
1027
+ result = index .get_level_values (1 )
1028
1028
expected = pd .DatetimeIndex ([0 , 1 , pd .NaT ])
1029
- tm .assert_index_equal (values , expected )
1029
+ tm .assert_index_equal (result , expected )
1030
1030
1031
1031
arrays = [[], []]
1032
1032
index = pd .MultiIndex .from_arrays (arrays )
1033
- values = index .get_level_values (0 )
1034
- assert values .shape == (0 , )
1033
+ result = index .get_level_values (0 )
1034
+ expected = pd .Index ([], dtype = object )
1035
+ tm .assert_index_equal (result , expected )
1036
+
1037
+ def test_get_level_values_all_na (self ):
1038
+ arrays = [[np .nan , np .nan , np .nan ], ['a' , np .nan , 1 ]]
1039
+ index = pd .MultiIndex .from_arrays (arrays )
1040
+ result = index .get_level_values (0 )
1041
+ expected = pd .Index ([np .nan , np .nan , np .nan ], dtype = np .float64 )
1042
+ tm .assert_index_equal (result , expected )
1043
+
1044
+ result = index .get_level_values (1 )
1045
+ expected = pd .Index (['a' , np .nan , 1 ], dtype = object )
1046
+ tm .assert_index_equal (result , expected )
1035
1047
1036
1048
def test_reorder_levels (self ):
1037
1049
# this blows up
0 commit comments