@@ -2879,7 +2879,7 @@ def test_constructor_column_duplicates(self):
2879
2879
columns = ['b' , 'a' , 'a' ])
2880
2880
2881
2881
2882
- def test_column_duplicates_operations (self ):
2882
+ def test_column_dups_operations (self ):
2883
2883
2884
2884
def check (result , expected = None ):
2885
2885
if expected is not None :
@@ -2973,22 +2973,6 @@ def check(result, expected=None):
2973
2973
expected = DataFrame ([[1 ,5 ,7. ],[1 ,5 ,7. ],[1 ,5 ,7. ]],columns = ['bar' ,'hello' ,'foo2' ])
2974
2974
check (df ,expected )
2975
2975
2976
- # reindex
2977
- df = DataFrame ([[1 ,5 ,7. ],[1 ,5 ,7. ],[1 ,5 ,7. ]],columns = ['bar' ,'a' ,'a' ])
2978
- expected = DataFrame ([[1 ],[1 ],[1 ]],columns = ['bar' ])
2979
- result = df .reindex (columns = ['bar' ])
2980
- check (result ,expected )
2981
-
2982
- result1 = DataFrame ([[1 ],[1 ],[1 ]],columns = ['bar' ]).reindex (columns = ['bar' ,'foo' ])
2983
- result2 = df .reindex (columns = ['bar' ,'foo' ])
2984
- check (result2 ,result1 )
2985
-
2986
- # drop
2987
- df = DataFrame ([[1 ,5 ,7. ],[1 ,5 ,7. ],[1 ,5 ,7. ]],columns = ['bar' ,'a' ,'a' ])
2988
- df = df .drop (['a' ],axis = 1 )
2989
- expected = DataFrame ([[1 ],[1 ],[1 ]],columns = ['bar' ])
2990
- check (df ,expected )
2991
-
2992
2976
# values
2993
2977
df = DataFrame ([[1 ,2.5 ],[3 ,4.5 ]], index = [1 ,2 ], columns = ['x' ,'x' ])
2994
2978
result = df .values
@@ -3016,6 +3000,17 @@ def check(result, expected=None):
3016
3000
columns = ['RT' ,'TClose' ,'TExg' ,'RPT_Date' ,'STK_ID' ,'STK_Name' ,'QT_Close' ]).set_index (['STK_ID' ,'RPT_Date' ],drop = False )
3017
3001
assert_frame_equal (result ,expected )
3018
3002
3003
+ # reindex is invalid!
3004
+ df = DataFrame ([[1 ,5 ,7. ],[1 ,5 ,7. ],[1 ,5 ,7. ]],columns = ['bar' ,'a' ,'a' ])
3005
+ self .assertRaises (ValueError , df .reindex , columns = ['bar' ])
3006
+ self .assertRaises (ValueError , df .reindex , columns = ['bar' ,'foo' ])
3007
+
3008
+ # drop
3009
+ df = DataFrame ([[1 ,5 ,7. ],[1 ,5 ,7. ],[1 ,5 ,7. ]],columns = ['bar' ,'a' ,'a' ])
3010
+ df = df .drop (['a' ],axis = 1 )
3011
+ expected = DataFrame ([[1 ],[1 ],[1 ]],columns = ['bar' ])
3012
+ check (df ,expected )
3013
+
3019
3014
def test_insert_benchmark (self ):
3020
3015
# from the vb_suite/frame_methods/frame_insert_columns
3021
3016
N = 10
@@ -7573,6 +7568,21 @@ def test_reindex_fill_value(self):
7573
7568
expected = df .reindex (lrange (15 )).fillna (0 )
7574
7569
assert_frame_equal (result , expected )
7575
7570
7571
+ def test_reindex_dups (self ):
7572
+
7573
+ # GH4746, reindex on duplicate index error messages
7574
+ arr = np .random .randn (10 )
7575
+ df = DataFrame (arr ,index = [1 ,2 ,3 ,4 ,5 ,1 ,2 ,3 ,4 ,5 ])
7576
+
7577
+ # set index is ok
7578
+ result = df .copy ()
7579
+ result .index = list (range (len (df )))
7580
+ expected = DataFrame (arr ,index = list (range (len (df ))))
7581
+ assert_frame_equal (result ,expected )
7582
+
7583
+ # reindex fails
7584
+ self .assertRaises (ValueError , df .reindex , index = list (range (len (df ))))
7585
+
7576
7586
def test_align (self ):
7577
7587
7578
7588
af , bf = self .frame .align (self .frame )
0 commit comments