Skip to content

Commit 38db00f

Browse files
committed
BUG: malformed blocks when excluding nuisance columns causing #916
1 parent f32efa8 commit 38db00f

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

pandas/core/groupby.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,6 +1083,9 @@ def _cython_agg_general(self, how):
10831083
all_items.extend(b.items)
10841084
output_keys = agg_labels[agg_labels.isin(all_items)]
10851085

1086+
for blk in new_blocks:
1087+
blk.set_ref_items(output_keys, maybe_rename=False)
1088+
10861089
if not self.as_index:
10871090
index = np.arange(new_blocks[0].values.shape[1])
10881091
mgr = BlockManager(new_blocks, [output_keys, index])

pandas/tools/tests/test_merge.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -964,8 +964,8 @@ def test_concat_dict(self):
964964
tm.assert_frame_equal(result, expected)
965965

966966
def test_concat_ignore_index(self):
967-
frame1 = DataFrame({"test1": ["a", "b", "c"],
968-
"test2": [1,2,3],
967+
frame1 = DataFrame({"test1": ["a", "b", "c"],
968+
"test2": [1,2,3],
969969
"test3": [4.5, 3.2, 1.2]})
970970
frame2 = DataFrame({"test3": [5.2, 2.2, 4.3]})
971971
frame1.index = Index(["x", "y", "z"])
@@ -974,12 +974,12 @@ def test_concat_ignore_index(self):
974974
v1 = concat([frame1, frame2], axis=1, ignore_index=True)
975975

976976
nan = np.nan
977-
expected = DataFrame([[nan,nan,nan, 4.3],
977+
expected = DataFrame([[nan,nan,nan, 4.3],
978978
['a', 1, 4.5, 5.2],
979979
['b', 2, 3.2, 2.2],
980-
['c', 3, 1.2, nan]],
980+
['c', 3, 1.2, nan]],
981981
index=Index(["q", "x", "y", "z"]))
982-
982+
983983
tm.assert_frame_equal(v1, expected)
984984

985985
def test_concat_multiindex_with_keys(self):
@@ -1221,6 +1221,20 @@ def test_concat_exclude_none(self):
12211221
tm.assert_frame_equal(result, df)
12221222
self.assertRaises(Exception, concat, [None, None])
12231223

1224+
def test_mixed_type_join_with_suffix(self):
1225+
# GH #916
1226+
df = DataFrame(np.random.randn(20, 6),
1227+
columns=['a', 'b', 'c', 'd', 'e', 'f'])
1228+
df.insert(0, 'id', 0)
1229+
df.insert(5, 'dt', 'foo')
1230+
1231+
grouped = df.groupby('id')
1232+
mn = grouped.mean()
1233+
cn = grouped.count()
1234+
1235+
# it works!
1236+
mn.join(cn, rsuffix='_right')
1237+
12241238
if __name__ == '__main__':
12251239
import nose
12261240
nose.runmodule(argv=[__file__,'-vvs','-x','--pdb', '--pdb-failure'],

0 commit comments

Comments
 (0)