Skip to content

Commit bc5b230

Browse files
committed
BUG: close #911, fix df.set_value() failure when index dtype needs to change.
1 parent 79decd7 commit bc5b230

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

pandas/core/generic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ def _expand_axes(self, key):
358358
new_axes = []
359359
for k, ax in zip(key, self.axes):
360360
if k not in ax:
361-
new_axes.append(np.concatenate([ax, [k]]))
361+
new_axes.append(ax.insert(len(ax), k))
362362
else:
363363
new_axes.append(ax)
364364

pandas/tests/test_frame.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -912,6 +912,12 @@ def test_set_value_resize(self):
912912
self.assert_(isnull(res3['baz'].drop(['foobar'])).values.all())
913913
self.assertRaises(ValueError, res3.set_value, 'foobar', 'baz', 'sam')
914914

915+
def test_set_value_with_index_dtype_change(self):
916+
df = DataFrame(randn(3,3), index=range(3), columns=list('ABC'))
917+
res = df.set_value('C', 2, 1.0)
918+
self.assert_(list(res.index) == list(df.index) + ['C'])
919+
self.assert_(list(res.columns) == list(df.columns) + [2])
920+
915921
def test_get_set_value_no_partial_indexing(self):
916922
# partial w/ MultiIndex raise exception
917923
index = MultiIndex.from_tuples([(0, 1), (0, 2), (1, 1), (1, 2)])

0 commit comments

Comments
 (0)