Skip to content

Commit ebb75a4

Browse files
BUG: Dataframe constructor when given dict with None value
BUG: Dataframe constructor when given dict with None value
1 parent d98e982 commit ebb75a4

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

doc/source/whatsnew/v0.19.1.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,6 @@ Bug Fixes
4242

4343

4444

45-
45+
- Bug in ``pd.DataFrame`` where constructor fails when given dict with ``None`` value (:issue:`14381`)
4646
- Bug in ``pd.concat`` where names of the ``keys`` were not propagated to the resulting ``MultiIndex`` (:issue:`14252`)
4747
- Bug in ``MultiIndex.set_levels`` where illegal level values were still set after raising an error (:issue:`13754`)

pandas/core/frame.py

+2
Original file line numberDiff line numberDiff line change
@@ -5693,6 +5693,8 @@ def _homogenize(data, index, dtype=None):
56935693
else:
56945694
v = dict(v)
56955695
v = lib.fast_multiget(v, oindex.values, default=NA)
5696+
elif v is None:
5697+
v = np.nan
56965698
v = _sanitize_array(v, index, dtype=dtype, copy=False,
56975699
raise_cast_failure=False)
56985700

pandas/tests/frame/test_constructors.py

+6
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,12 @@ def test_constructor_dict(self):
259259
frame = DataFrame({'A': [], 'B': []}, columns=['A', 'B'])
260260
self.assert_index_equal(frame.index, Index([], dtype=np.int64))
261261

262+
# GH 14381
263+
# Dict with None value
264+
frame_none = DataFrame(dict(a=None), index=[0])
265+
frame_nan = DataFrame(dict(a=np.nan), index=[0])
266+
tm.assert_frame_equal(frame_none, frame_nan)
267+
262268
# GH10856
263269
# dict with scalar values should raise error, even if columns passed
264270
with tm.assertRaises(ValueError):

0 commit comments

Comments
 (0)