Skip to content

Commit def0ee4

Browse files
committed
first pass
1 parent 4aac0c8 commit def0ee4

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

pandas/core/arrays/categorical.py

+2
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,8 @@ def _from_inferred_categories(cls, inferred_categories, inferred_codes,
523523
cats = to_datetime(inferred_categories, errors='coerce')
524524
elif is_timedelta64_dtype(dtype.categories):
525525
cats = to_timedelta(inferred_categories, errors='coerce')
526+
elif dtype.categories.is_boolean():
527+
cats = inferred_categories == 'True'
526528

527529
if known_categories:
528530
# recode from observation order to dtype.categories order

pandas/tests/io/parser/dtypes.py

+8
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,14 @@ def test_categoricaldtype_coerces_timedelta(self):
229229
result = self.read_csv(StringIO(data), dtype=dtype)
230230
tm.assert_frame_equal(result, expected)
231231

232+
def test_categoricaldtype_coerces_boolen(self):
233+
# 20498
234+
dtype = {'b': CategoricalDtype([False, True])}
235+
data = "b\nTrue\nFalse\nNA\nFalse"
236+
expected = pd.DataFrame({"b": Categorical([True, False, None, False])})
237+
result = self.read_csv(StringIO(data), dtype=dtype)
238+
tm.assert_frame_equal(result, expected)
239+
232240
def test_categoricaldtype_unexpected_categories(self):
233241
dtype = {'b': CategoricalDtype(['a', 'b', 'd', 'e'])}
234242
data = "b\nd\na\nc\nd" # Unexpected c

0 commit comments

Comments
 (0)