Skip to content

Commit 92b0cc3

Browse files
committed
BUG-20591 test custom na values
1 parent b9a0f13 commit 92b0cc3

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

pandas/io/parsers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1672,7 +1672,7 @@ def _convert_to_ndarrays(self, dct, na_values, na_fvalues, verbose=False,
16721672
try:
16731673
if (is_bool_dtype(cast_type) and
16741674
not is_categorical_dtype(cast_type)
1675-
and set(values) - set(col_na_values)):
1675+
and na_count > 0):
16761676
raise ValueError("Bool column has NA values in "
16771677
"column {column}"
16781678
.format(column=c))

pandas/tests/io/parser/test_na_values.py

+10-7
Original file line numberDiff line numberDiff line change
@@ -423,16 +423,19 @@ def test_na_values_with_dtype_str_and_na_filter(all_parsers, na_filter):
423423
tm.assert_frame_equal(result, expected)
424424

425425

426-
@pytest.mark.parametrize("data", [
427-
"false,1\n,1\ntrue,",
428-
"false,1\nnull,1\ntrue,",
429-
"false,1\nnan,1\ntrue,",
426+
@pytest.mark.parametrize("data, na_values", [
427+
("false,1\n,1\ntrue", None),
428+
("false,1\nnull,1\ntrue", None),
429+
("false,1\nnan,1\ntrue", None),
430+
("false,1\nfoo,1\ntrue", 'foo'),
431+
("false,1\nfoo,1\ntrue", ['foo']),
432+
("false,1\nfoo,1\ntrue", {'a': 'foo'}),
430433
])
431-
def test_cast_NA_to_bool_raises_error(all_parsers, data):
434+
def test_cast_NA_to_bool_raises_error(all_parsers, data, na_values):
432435
parser = all_parsers
433436
msg = ("(Bool column has NA values in column [0a])|"
434437
"(cannot safely convert passed user dtype of "
435-
" bool for object dtyped data in column 0)")
438+
"bool for object dtyped data in column 0)")
436439
with pytest.raises(ValueError, match=msg):
437440
parser.read_csv(StringIO(data), header=None, names=['a', 'b'],
438-
dtype={'a': 'bool'})
441+
dtype={'a': 'bool'}, na_values=na_values)

0 commit comments

Comments
 (0)