@@ -478,18 +478,44 @@ def test_uneven_length_cols(self):
478
478
tm .assert_frame_equal (df , expected )
479
479
480
480
def test_raise_on_usecols_names_mismatch (self ):
481
- # see gh-14671
481
+ ## see gh-14671
482
482
data = 'a,b,c,d\n 1,2,3,4\n 5,6,7,8'
483
+ msg = 'Usecols do not match names' ## from parsers.py CParserWrapper()
484
+ msg2 = 'is not in list' ## from parser.py _handle_usecols()
485
+
483
486
usecols = ['a' ,'b' ,'c' ,'d' ]
484
487
df = self .read_csv (StringIO (data ), usecols = usecols )
485
488
expected = DataFrame ({'a' : [1 ,5 ], 'b' : [2 ,6 ], 'c' : [3 ,7 ], 'd' : [4 ,8 ]})
486
489
tm .assert_frame_equal (df , expected )
487
490
488
- msg = 'Usecols do not match names' ## from parsers.py CParserWrapper()
489
- msg2 = 'is not in list' ## from parser.py _handle_usecols()
490
491
usecols = ['a' ,'b' ,'c' ,'f' ]
491
492
with tm .assert_raises_regex (ValueError , re .compile ("'" + msg + '||' + msg2 + "'" )):
492
493
self .read_csv (StringIO (data ), usecols = usecols )
494
+
493
495
usecols = ['a' ,'b' ,'f' ]
494
496
with tm .assert_raises_regex (ValueError , re .compile ("'" + msg + '||' + msg2 + "'" )):
495
497
self .read_csv (StringIO (data ), usecols = usecols )
498
+
499
+ names = ['A' , 'B' , 'C' , 'D' ]
500
+
501
+ df = self .read_csv (StringIO (data ), header = 0 , names = names )
502
+ expected = DataFrame ({'A' : [1 ,5 ], 'B' : [2 ,6 ], 'C' : [3 ,7 ], 'D' : [4 ,8 ]})
503
+ tm .assert_frame_equal (df , expected )
504
+
505
+ # usecols = ['A','C']
506
+ # df = self.read_csv(StringIO(data), header=0, names=names, usecols=usecols)
507
+ # expected = DataFrame({'A': [1,5], 'C': [3,7]})
508
+ # tm.assert_frame_equal(df, expected)
509
+ #
510
+ # usecols = [0,2]
511
+ # df = self.read_csv(StringIO(data), header=0, names=names, usecols=usecols)
512
+ # expected = DataFrame({'A': [1,5], 'C': [3,7]})
513
+ # tm.assert_frame_equal(df, expected)
514
+
515
+
516
+ usecols = ['A' ,'B' ,'C' ,'f' ]
517
+ with tm .assert_raises_regex (ValueError , re .compile ("'" + msg + '||' + msg2 + "'" )):
518
+ self .read_csv (StringIO (data ), header = 0 , names = names , usecols = usecols )
519
+ usecols = ['A' ,'B' ,'f' ]
520
+ with tm .assert_raises_regex (ValueError , re .compile ("'" + msg + '||' + msg2 + "'" )):
521
+ self .read_csv (StringIO (data ), names = names , usecols = usecols )
0 commit comments