|
16 | 16 | MultiIndex, DatetimeIndex, Timestamp)
|
17 | 17 | from pandas.util.testing import (assert_almost_equal, assert_series_equal,
|
18 | 18 | assert_frame_equal, assert_panel_equal)
|
19 |
| -from pandas import compat |
| 19 | +from pandas import compat, concat |
20 | 20 |
|
21 | 21 | import pandas.util.testing as tm
|
22 | 22 | import pandas.lib as lib
|
@@ -359,6 +359,29 @@ def test_iloc_getitem_slice(self):
|
359 | 359 | self.check_result('slice', 'iloc', slice(1,3), 'ix', { 0 : [2,4], 1: [3,6], 2: [4,8] }, typs = ['ints'])
|
360 | 360 | self.check_result('slice', 'iloc', slice(1,3), 'indexer', slice(1,3), typs = ['labels','mixed','ts','floats','empty'], fails = IndexError)
|
361 | 361 |
|
| 362 | + def test_iloc_getitem_slice_dups(self): |
| 363 | + |
| 364 | + df1 = DataFrame(np.random.randn(10,4),columns=['A','A','B','B']) |
| 365 | + df2 = DataFrame(np.random.randint(0,10,size=20).reshape(10,2),columns=['A','C']) |
| 366 | + |
| 367 | + # axis=1 |
| 368 | + df = concat([df1,df2],axis=1) |
| 369 | + assert_frame_equal(df.iloc[:,:4],df1) |
| 370 | + assert_frame_equal(df.iloc[:,4:],df2) |
| 371 | + |
| 372 | + df = concat([df2,df1],axis=1) |
| 373 | + assert_frame_equal(df.iloc[:,:2],df2) |
| 374 | + assert_frame_equal(df.iloc[:,2:],df1) |
| 375 | + |
| 376 | + assert_frame_equal(df.iloc[:,0:3],concat([df2,df1.iloc[:,[0]]],axis=1)) |
| 377 | + |
| 378 | + # axis=0 |
| 379 | + df = concat([df,df],axis=0) |
| 380 | + assert_frame_equal(df.iloc[0:10,:2],df2) |
| 381 | + assert_frame_equal(df.iloc[0:10,2:],df1) |
| 382 | + assert_frame_equal(df.iloc[10:,:2],df2) |
| 383 | + assert_frame_equal(df.iloc[10:,2:],df1) |
| 384 | + |
362 | 385 | def test_iloc_getitem_out_of_bounds(self):
|
363 | 386 |
|
364 | 387 | # out-of-bounds slice
|
|
0 commit comments