@@ -1030,6 +1030,21 @@ def test_basic(self):
10301030 str (df .values )
10311031 str (df )
10321032
1033+ # GH8623
1034+ x = pd .DataFrame ([[1 ,'John P. Doe' ],[2 ,'Jane Dove' ],[1 ,'John P. Doe' ]],
1035+ columns = ['person_id' ,'person_name' ])
1036+ x ['person_name' ] = pd .Categorical (x .person_name ) # doing this breaks transform
1037+
1038+ expected = x .iloc [0 ].person_name
1039+ result = x .person_name .iloc [0 ]
1040+ self .assertEqual (result ,expected )
1041+
1042+ result = x .person_name [0 ]
1043+ self .assertEqual (result ,expected )
1044+
1045+ result = x .person_name .loc [0 ]
1046+ self .assertEqual (result ,expected )
1047+
10331048 def test_creation_astype (self ):
10341049 l = ["a" ,"b" ,"c" ,"a" ]
10351050 s = pd .Series (l )
@@ -1477,6 +1492,28 @@ def test_groupby(self):
14771492 result = gb .sum ()
14781493 tm .assert_frame_equal (result , expected )
14791494
1495+ # GH 8623
1496+ x = pd .DataFrame ([[1 ,'John P. Doe' ],[2 ,'Jane Dove' ],[1 ,'John P. Doe' ]],
1497+ columns = ['person_id' ,'person_name' ])
1498+ x ['person_name' ] = pd .Categorical (x .person_name )
1499+
1500+ g = x .groupby (['person_id' ])
1501+ result = g .transform (lambda x :x )
1502+ tm .assert_frame_equal (result , x [['person_name' ]])
1503+
1504+ result = x .drop_duplicates ('person_name' )
1505+ expected = x .iloc [[0 ,1 ]]
1506+ tm .assert_frame_equal (result , expected )
1507+
1508+ def f (x ):
1509+ return x .drop_duplicates ('person_name' ).iloc [0 ]
1510+
1511+ result = g .apply (f )
1512+ expected = x .iloc [[0 ,1 ]].copy ()
1513+ expected .index = Index ([1 ,2 ],name = 'person_id' )
1514+ expected ['person_name' ] = expected ['person_name' ].astype ('object' )
1515+ tm .assert_frame_equal (result , expected )
1516+
14801517 def test_pivot_table (self ):
14811518
14821519 raw_cat1 = Categorical (["a" ,"a" ,"b" ,"b" ], categories = ["a" ,"b" ,"z" ])
0 commit comments