@@ -422,6 +422,40 @@ def test_loc_setitem(self):
422
422
423
423
self .assert_eq (kdf .sort_index (), pdf .sort_index ())
424
424
425
+ def test_where (self ):
426
+ pdf1 = pd .DataFrame ({'A' : [0 , 1 , 2 , 3 , 4 ], 'B' : [100 , 200 , 300 , 400 , 500 ]})
427
+ pdf2 = pd .DataFrame ({'A' : [0 , - 1 , - 2 , - 3 , - 4 ], 'B' : [- 100 , - 200 , - 300 , - 400 , - 500 ]})
428
+ kdf1 = ks .from_pandas (pdf1 )
429
+ kdf2 = ks .from_pandas (pdf2 )
430
+
431
+ self .assert_eq (repr (pdf1 .where (pdf2 > 100 )),
432
+ repr (kdf1 .where (kdf2 > 100 ).sort_index ()))
433
+
434
+ pdf1 = pd .DataFrame ({'A' : [- 1 , - 2 , - 3 , - 4 , - 5 ], 'B' : [- 100 , - 200 , - 300 , - 400 , - 500 ]})
435
+ pdf2 = pd .DataFrame ({'A' : [- 10 , - 20 , - 30 , - 40 , - 50 ], 'B' : [- 5 , - 4 , - 3 , - 2 , - 1 ]})
436
+ kdf1 = ks .from_pandas (pdf1 )
437
+ kdf2 = ks .from_pandas (pdf2 )
438
+
439
+ self .assert_eq (repr (pdf1 .where (pdf2 < - 250 )),
440
+ repr (kdf1 .where (kdf2 < - 250 ).sort_index ()))
441
+
442
+ def test_mask (self ):
443
+ pdf1 = pd .DataFrame ({'A' : [0 , 1 , 2 , 3 , 4 ], 'B' : [100 , 200 , 300 , 400 , 500 ]})
444
+ pdf2 = pd .DataFrame ({'A' : [0 , - 1 , - 2 , - 3 , - 4 ], 'B' : [- 100 , - 200 , - 300 , - 400 , - 500 ]})
445
+ kdf1 = ks .from_pandas (pdf1 )
446
+ kdf2 = ks .from_pandas (pdf2 )
447
+
448
+ self .assert_eq (repr (pdf1 .mask (pdf2 < 100 )),
449
+ repr (kdf1 .mask (kdf2 < 100 ).sort_index ()))
450
+
451
+ pdf1 = pd .DataFrame ({'A' : [- 1 , - 2 , - 3 , - 4 , - 5 ], 'B' : [- 100 , - 200 , - 300 , - 400 , - 500 ]})
452
+ pdf2 = pd .DataFrame ({'A' : [- 10 , - 20 , - 30 , - 40 , - 50 ], 'B' : [- 5 , - 4 , - 3 , - 2 , - 1 ]})
453
+ kdf1 = ks .from_pandas (pdf1 )
454
+ kdf2 = ks .from_pandas (pdf2 )
455
+
456
+ self .assert_eq (repr (pdf1 .mask (pdf2 > - 250 )),
457
+ repr (kdf1 .mask (kdf2 > - 250 ).sort_index ()))
458
+
425
459
def test_multi_index_column_assignment_frame (self ):
426
460
pdf = pd .DataFrame ({'a' : [1 , 2 , 3 , 2 ], 'b' : [4.0 , 2.0 , 3.0 , 1.0 ]})
427
461
pdf .columns = pd .MultiIndex .from_tuples ([('a' , 'x' ), ('a' , 'y' )])
@@ -493,3 +527,41 @@ def test_loc_setitem(self):
493
527
494
528
with self .assertRaisesRegex (ValueError , "Cannot combine the series or dataframe" ):
495
529
kdf .loc [['viper' , 'sidewinder' ], ['shield' ]] = another_kdf .max_speed
530
+
531
+ def test_where (self ):
532
+ pdf1 = pd .DataFrame ({'A' : [0 , 1 , 2 , 3 , 4 ], 'B' : [100 , 200 , 300 , 400 , 500 ]})
533
+ pdf2 = pd .DataFrame ({'A' : [0 , - 1 , - 2 , - 3 , - 4 ], 'B' : [- 100 , - 200 , - 300 , - 400 , - 500 ]})
534
+ kdf1 = ks .from_pandas (pdf1 )
535
+ kdf2 = ks .from_pandas (pdf2 )
536
+
537
+ with self .assertRaisesRegex (ValueError , "Cannot combine the series or dataframe" ):
538
+ self .assert_eq (repr (pdf1 .where (pdf2 > 100 )),
539
+ repr (kdf1 .where (kdf2 > 100 ).sort_index ()))
540
+
541
+ pdf1 = pd .DataFrame ({'A' : [- 1 , - 2 , - 3 , - 4 , - 5 ], 'B' : [- 100 , - 200 , - 300 , - 400 , - 500 ]})
542
+ pdf2 = pd .DataFrame ({'A' : [- 10 , - 20 , - 30 , - 40 , - 50 ], 'B' : [- 5 , - 4 , - 3 , - 2 , - 1 ]})
543
+ kdf1 = ks .from_pandas (pdf1 )
544
+ kdf2 = ks .from_pandas (pdf2 )
545
+
546
+ with self .assertRaisesRegex (ValueError , "Cannot combine the series or dataframe" ):
547
+ self .assert_eq (repr (pdf1 .where (pdf2 < - 250 )),
548
+ repr (kdf1 .where (kdf2 < - 250 ).sort_index ()))
549
+
550
+ def test_mask (self ):
551
+ pdf1 = pd .DataFrame ({'A' : [0 , 1 , 2 , 3 , 4 ], 'B' : [100 , 200 , 300 , 400 , 500 ]})
552
+ pdf2 = pd .DataFrame ({'A' : [0 , - 1 , - 2 , - 3 , - 4 ], 'B' : [- 100 , - 200 , - 300 , - 400 , - 500 ]})
553
+ kdf1 = ks .from_pandas (pdf1 )
554
+ kdf2 = ks .from_pandas (pdf2 )
555
+
556
+ with self .assertRaisesRegex (ValueError , "Cannot combine the series or dataframe" ):
557
+ self .assert_eq (repr (pdf1 .mask (pdf2 < 100 )),
558
+ repr (kdf1 .mask (kdf2 < 100 ).sort_index ()))
559
+
560
+ pdf1 = pd .DataFrame ({'A' : [- 1 , - 2 , - 3 , - 4 , - 5 ], 'B' : [- 100 , - 200 , - 300 , - 400 , - 500 ]})
561
+ pdf2 = pd .DataFrame ({'A' : [- 10 , - 20 , - 30 , - 40 , - 50 ], 'B' : [- 5 , - 4 , - 3 , - 2 , - 1 ]})
562
+ kdf1 = ks .from_pandas (pdf1 )
563
+ kdf2 = ks .from_pandas (pdf2 )
564
+
565
+ with self .assertRaisesRegex (ValueError , "Cannot combine the series or dataframe" ):
566
+ self .assert_eq (repr (pdf1 .mask (pdf2 > - 250 )),
567
+ repr (kdf1 .mask (kdf2 > - 250 ).sort_index ()))
0 commit comments