@@ -671,6 +671,29 @@ def test_left_merge_empty_dataframe(self):
671
671
result = merge (right , left , on = 'key' , how = 'right' )
672
672
assert_frame_equal (result , left )
673
673
674
+ def test_merge_nosort (self ):
675
+ # #2098, anything to do?
676
+
677
+ from datetime import datetime
678
+
679
+ d = {"var1" : np .random .randint (0 , 10 , size = 10 ),
680
+ "var2" : np .random .randint (0 , 10 , size = 10 ),
681
+ "var3" : [datetime (2012 , 1 , 12 ), datetime (2011 , 2 , 4 ),
682
+ datetime (2010 , 2 , 3 ), datetime (2012 , 1 , 12 ),
683
+ datetime (2011 , 2 , 4 ), datetime (2012 , 4 , 3 ),
684
+ datetime (2012 , 3 , 4 ), datetime (2008 , 5 , 1 ),
685
+ datetime (2010 , 2 , 3 ), datetime (2012 , 2 , 3 )]}
686
+ df = DataFrame .from_dict (d )
687
+ var3 = df .var3 .unique ()
688
+ var3 .sort ()
689
+ new = DataFrame .from_dict ({"var3" : var3 ,
690
+ "var8" : np .random .random (7 )})
691
+
692
+ result = df .merge (new , on = "var3" , sort = False )
693
+ exp = merge (df , new , on = 'var3' , sort = False )
694
+ assert_frame_equal (result , exp )
695
+
696
+ self .assert_ ((df .var3 .unique () == result .var3 .unique ()).all ())
674
697
675
698
def _check_merge (x , y ):
676
699
for how in ['inner' , 'left' , 'outer' ]:
0 commit comments