2025年03月04日 Python中的CASE WHEN语句 极客笔记
在SQL中,我们经常会用到CASE WHEN语句来实现条件判断。在Python中,虽然没有专门的CASE WHEN语句,但是我们可以通过一些技巧来实现类似的功能。本文将介绍在Python中如何实现类似于SQL中的CASE WHEN语句的功能。
在Python中,我们可以使用字典来实现类似于CASE WHEN语句的功能。我们可以将条件作为字典的键,对应的结果作为字典的值。然后根据条件来查找对应的结果。
def case_when(condition, mapping, default=None):
return mapping.get(condition, default)
result = case_when('A', {'A': 'Apple', 'B': 'Banana', 'C': 'Cherry'}, 'Unknown')
print(result) # Output: Apple
在上面的示例中,我们定义了一个case_when
函数,接受三个参数:condition
表示条件,mapping
表示条件和结果的映射关系,default
表示如果条件不在映射中时的默认返回值。我们调用case_when
函数来模拟CASE WHEN语句,根据条件返回对应的结果。
除了使用字典,我们还可以使用函数来实现类似于CASE WHEN语句的功能。我们可以定义一个函数,根据条件返回对应的结果。
def case_when_func(condition):
if condition == 'A':
return 'Apple'
elif condition == 'B':
return 'Banana'
elif condition == 'C':
return 'Cherry'
else:
return 'Unknown'
result = case_when_func('B')
print(result) # Output: Banana
在上面的示例中,我们定义了一个case_when_func
函数,接受一个参数condition
,根据不同的条件来返回对应的结果。我们调用case_when_func
函数来实现条件判断功能。
在Python中,我们还可以使用numpy库来实现类似于CASE WHEN语句的功能。numpy库中的select
函数可以实现根据条件返回不同的结果。
import numpy as np
condition = np.array(['A', 'B', 'C'])
result = np.select([condition == 'A', condition == 'B', condition == 'C'], ['Apple', 'Banana', 'Cherry'], default='Unknown')
print(result) # Output: ['Apple' 'Banana' 'Cherry']
在上面的示例中,我们首先创建一个numpy数组condition
,然后使用np.select
函数来根据条件返回对应的结果。我们传入三个参数:条件数组,条件判断表达式,结果数组。最后输出根据条件判断的结果。
以上介绍了在Python中如何实现类似于SQL中的CASE WHEN语句的功能。我们可以使用字典、函数、numpy等方法来实现条件判断并返回对应的结果。根据实际情况选择合适的方法来处理条件判断,提高代码的可读性和可维护性。
本文链接:http://so.lmcjl.com/news/24280/