首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中使用case when语句

问在Python中使用case when语句
EN

Stack Overflow用户
提问于 2021-09-24 01:38:01
回答 4查看 64关注 0票数 1

您好,我来自一个sql背景,我很难使用与case when语句等效的东西。我有一个栏目的网站访问量有0-1000的范围。我想把它分成0-299 =小,300-599 =中,600-1000 =大。这是我所拥有的

代码语言:javascript
复制
df['company_size'] = df['site_visits'].apply(lambda x: 'Small' if (x < 300) else 'Large')

如何添加更多语句?我正在使用pandas软件。

EN

回答 4

Stack Overflow用户

发布于 2021-09-24 01:41:55

在else中添加if:

代码语言:javascript
复制
df['company_size'] = df['site_visits'].apply(lambda x: 'Small' if (x < 300)
                                             else ('Medium' if x < 600 else 'Large'))

最适合使用pd.cut

代码语言:javascript
复制
df['company_size'] = pd.cut(df['site_visits'], 
                            [0, 300, 600, 1000], 
                            labels=['Small', 'Medium', 'Large'])
票数 0
EN

Stack Overflow用户

发布于 2021-09-24 01:43:47

定义一个函数,使其在有许多情况时可读。

代码语言:javascript
复制
def size_name(size):
    if size < 300:
        return 'Small'
    if size < 600:
        return 'Medium'
    return 'Large'

df['company_size'] = df['site_visits'].apply(size_name)
票数 0
EN

Stack Overflow用户

发布于 2021-09-24 01:45:24

尝试为您的情况定义一个函数。因为它会变得更加清晰。

示例代码:

代码语言:javascript
复制
def my_condition(x):
    if x < 300:
        return "Small"
    elif x == 300:
        return "Medium"
    else
        return "Large"
    
df['company_size'] = df['site_visits'].apply(my_condition)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69308566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档