1
+ import numpy as np
1
2
import pytest # noqa
2
3
3
4
import pandas as pd
@@ -10,51 +11,51 @@ def test_case_when_multiple_conditions_callable(self):
10
11
result = df .assign (
11
12
new_column = pd .case_when (
12
13
lambda x : x .a == 1 ,
13
- "first" ,
14
+ 1 ,
14
15
lambda x : (x .a > 1 ) & (x .b == 5 ),
15
- "second" ,
16
+ 2 ,
16
17
)
17
18
)
18
- expected = df .assign (new_column = ["first" , "second" , None ])
19
+ expected = df .assign (new_column = [1 , 2 , np . nan ])
19
20
tm .assert_frame_equal (result , expected )
20
21
21
22
def test_case_when_multiple_conditions_array_series (self ):
22
23
df = pd .DataFrame (dict (a = [1 , 2 , 3 ], b = [4 , 5 , 6 ]))
23
24
result = df .assign (
24
25
new_column = pd .case_when (
25
26
[True , False , False ],
26
- "first" ,
27
+ 1 ,
27
28
pd .Series ([False , True , False ]),
28
- "second" ,
29
+ 2 ,
29
30
)
30
31
)
31
- expected = df .assign (new_column = ["first" , "second" , None ])
32
+ expected = df .assign (new_column = [1 , 2 , np . nan ])
32
33
tm .assert_frame_equal (result , expected )
33
34
34
35
def test_case_when_multiple_conditions_callable_default (self ):
35
36
df = pd .DataFrame (dict (a = [1 , 2 , 3 ], b = [4 , 5 , 6 ]))
36
37
result = df .assign (
37
38
new_column = pd .case_when (
38
39
lambda x : x .a == 1 ,
39
- "first" ,
40
+ 1 ,
40
41
lambda x : (x .a > 1 ) & (x .b == 5 ),
41
- "second" ,
42
- default = "default" ,
42
+ 2 ,
43
+ default = - 1 ,
43
44
)
44
45
)
45
- expected = df .assign (new_column = ["first" , "second" , "default" ])
46
+ expected = df .assign (new_column = [1 , 2 , - 1 ])
46
47
tm .assert_frame_equal (result , expected )
47
48
48
49
def test_case_when_multiple_conditions_callable_default_series (self ):
49
50
df = pd .DataFrame (dict (a = [1 , 2 , 3 ], b = [4 , 5 , 6 ]))
50
51
result = df .assign (
51
52
new_column = pd .case_when (
52
53
lambda x : x .a == 1 ,
53
- "first" ,
54
+ 1 ,
54
55
lambda x : (x .a > 1 ) & (x .b == 5 ),
55
- "second" ,
56
+ 2 ,
56
57
default = df .b ,
57
58
)
58
59
)
59
- expected = df .assign (new_column = ["first" , "second" , "6" ])
60
+ expected = df .assign (new_column = [1 , 2 , 6 ])
60
61
tm .assert_frame_equal (result , expected )
0 commit comments