@@ -61,8 +61,8 @@ def test_iloc_getitem_list_int(self):
61
61
# the correct type
62
62
63
63
64
- class TestiLoc2 :
65
- # TODO: better name, just separating out things that dont rely on base class
64
+ class TestiLocBaseIndependent :
65
+ """Tests Independent Of Base Class"""
66
66
67
67
def test_is_scalar_access (self ):
68
68
# GH#32085 index with duplicates doesnt matter for _is_scalar_access
@@ -262,12 +262,42 @@ def test_iloc_getitem_dups(self):
262
262
tm .assert_series_equal (result , expected )
263
263
264
264
def test_iloc_getitem_array (self ):
265
- # TODO: test something here?
266
- pass
265
+ df = DataFrame (
266
+ [
267
+ {"A" : 1 , "B" : 2 , "C" : 3 },
268
+ {"A" : 100 , "B" : 200 , "C" : 300 },
269
+ {"A" : 1000 , "B" : 2000 , "C" : 3000 },
270
+ ]
271
+ )
272
+
273
+ expected = DataFrame ([{"A" : 1 , "B" : 2 , "C" : 3 }])
274
+ tm .assert_frame_equal (df .iloc [[0 ]], expected )
275
+
276
+ expected = DataFrame ([{"A" : 1 , "B" : 2 , "C" : 3 }, {"A" : 100 , "B" : 200 , "C" : 300 }])
277
+ tm .assert_frame_equal (df .iloc [[0 , 1 ]], expected )
278
+
279
+ expected = DataFrame ([{"B" : 2 , "C" : 3 }, {"B" : 2000 , "C" : 3000 }], index = [0 , 2 ])
280
+ result = df .iloc [[0 , 2 ], [1 , 2 ]]
281
+ tm .assert_frame_equal (result , expected )
267
282
268
283
def test_iloc_getitem_bool (self ):
269
- # TODO: test something here?
270
- pass
284
+ df = DataFrame (
285
+ [
286
+ {"A" : 1 , "B" : 2 , "C" : 3 },
287
+ {"A" : 100 , "B" : 200 , "C" : 300 },
288
+ {"A" : 1000 , "B" : 2000 , "C" : 3000 },
289
+ ]
290
+ )
291
+
292
+ expected = DataFrame ([{"A" : 1 , "B" : 2 , "C" : 3 }, {"A" : 100 , "B" : 200 , "C" : 300 }])
293
+ result = df .iloc [[True , True , False ]]
294
+ tm .assert_frame_equal (result , expected )
295
+
296
+ expected = DataFrame (
297
+ [{"A" : 1 , "B" : 2 , "C" : 3 }, {"A" : 1000 , "B" : 2000 , "C" : 3000 }], index = [0 , 2 ]
298
+ )
299
+ result = df .iloc [lambda x : x .index % 2 == 0 ]
300
+ tm .assert_frame_equal (result , expected )
271
301
272
302
@pytest .mark .parametrize ("index" , [[True , False ], [True , False , True , False ]])
273
303
def test_iloc_getitem_bool_diff_len (self , index ):
@@ -278,8 +308,27 @@ def test_iloc_getitem_bool_diff_len(self, index):
278
308
_ = s .iloc [index ]
279
309
280
310
def test_iloc_getitem_slice (self ):
281
- # TODO: test something here?
282
- pass
311
+ df = DataFrame (
312
+ [
313
+ {"A" : 1 , "B" : 2 , "C" : 3 },
314
+ {"A" : 100 , "B" : 200 , "C" : 300 },
315
+ {"A" : 1000 , "B" : 2000 , "C" : 3000 },
316
+ ]
317
+ )
318
+
319
+ expected = DataFrame ([{"A" : 1 , "B" : 2 , "C" : 3 }, {"A" : 100 , "B" : 200 , "C" : 300 }])
320
+ result = df .iloc [:2 ]
321
+ tm .assert_frame_equal (result , expected )
322
+
323
+ expected = DataFrame ([{"A" : 100 , "B" : 200 }], index = [1 ])
324
+ result = df .iloc [1 :2 , 0 :2 ]
325
+ tm .assert_frame_equal (result , expected )
326
+
327
+ expected = DataFrame (
328
+ [{"A" : 1 , "C" : 3 }, {"A" : 100 , "C" : 300 }, {"A" : 1000 , "C" : 3000 }]
329
+ )
330
+ result = df .iloc [:, lambda df : [0 , 2 ]]
331
+ tm .assert_frame_equal (result , expected )
283
332
284
333
def test_iloc_getitem_slice_dups (self ):
285
334
0 commit comments