Skip to content

Commit 6b5cc4f

Browse files
committed
first pass
1 parent d7a4f5b commit 6b5cc4f

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
@@ -521,6 +521,8 @@ def _from_inferred_categories(cls, inferred_categories, inferred_codes,
521521
cats = to_datetime(inferred_categories, errors='coerce')
522522
elif is_timedelta64_dtype(dtype.categories):
523523
cats = to_timedelta(inferred_categories, errors='coerce')
524+
elif dtype.categories.is_boolean():
525+
cats = inferred_categories == 'True'
524526

525527
if known_categories:
526528
# 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)