File tree 3 files changed +27
-11
lines changed
3 files changed +27
-11
lines changed Original file line number Diff line number Diff line change @@ -177,6 +177,7 @@ MultiIndex
177
177
I/O
178
178
^^^
179
179
- Bug in :meth: `read_json ` where integer overflow was occuring when json contains big number strings. (:issue: `30320 `)
180
+ - `read_csv ` will now raise a ``ValueError `` when the arguments `header ` and `prefix ` both are not `None `. (:issue: `27394 `)
180
181
- Bug in :meth: `DataFrame.to_json ` was raising ``NotFoundError `` when ``path_or_buf `` was an S3 URI (:issue: `28375 `)
181
182
-
182
183
Original file line number Diff line number Diff line change @@ -1399,17 +1399,21 @@ def __init__(self, kwds):
1399
1399
"index_col must only contain row numbers "
1400
1400
"when specifying a multi-index header"
1401
1401
)
1402
-
1403
- # GH 16338
1404
- elif self .header is not None and not is_integer (self .header ):
1405
- raise ValueError ("header must be integer or list of integers" )
1406
-
1407
- # GH 27779
1408
- elif self .header is not None and self .header < 0 :
1409
- raise ValueError (
1410
- "Passing negative integer to header is invalid. "
1411
- "For no header, use header=None instead"
1412
- )
1402
+ elif self .header is not None :
1403
+ # GH 27394
1404
+ if self .prefix is not None :
1405
+ raise ValueError (
1406
+ "Argument prefix must be None if argument header is not None"
1407
+ )
1408
+ # GH 16338
1409
+ elif not is_integer (self .header ):
1410
+ raise ValueError ("header must be integer or list of integers" )
1411
+ # GH 27779
1412
+ elif self .header < 0 :
1413
+ raise ValueError (
1414
+ "Passing negative integer to header is invalid. "
1415
+ "For no header, use header=None instead"
1416
+ )
1413
1417
1414
1418
self ._name_processed = False
1415
1419
Original file line number Diff line number Diff line change @@ -2040,6 +2040,17 @@ def test_read_csv_memory_growth_chunksize(all_parsers):
2040
2040
pass
2041
2041
2042
2042
2043
+ def test_read_csv_raises_on_header_prefix (all_parsers ):
2044
+ # gh-27394
2045
+ parser = all_parsers
2046
+ msg = "Argument prefix must be None if argument header is not None"
2047
+
2048
+ s = StringIO ("0,1\n 2,3" )
2049
+
2050
+ with pytest .raises (ValueError , match = msg ):
2051
+ parser .read_csv (s , header = 0 , prefix = "_X" )
2052
+
2053
+
2043
2054
def test_read_table_equivalency_to_read_csv (all_parsers ):
2044
2055
# see gh-21948
2045
2056
# As of 0.25.0, read_table is undeprecated
You can’t perform that action at this time.
0 commit comments