您好,我来自一个sql背景,我很难使用与case when语句等效的东西。我有一个栏目的网站访问量有0-1000的范围。我想把它分成0-299 =小,300-599 =中,600-1000 =大。这是我所拥有的
df['company_size'] = df['site_visits'].apply(lambda x: 'Small' if (x < 300) else 'Large')如何添加更多语句?我正在使用pandas软件。
发布于 2021-09-24 01:41:55
在else中添加if:
df['company_size'] = df['site_visits'].apply(lambda x: 'Small' if (x < 300)
else ('Medium' if x < 600 else 'Large'))最适合使用pd.cut
df['company_size'] = pd.cut(df['site_visits'],
[0, 300, 600, 1000],
labels=['Small', 'Medium', 'Large'])发布于 2021-09-24 01:43:47
定义一个函数,使其在有许多情况时可读。
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)发布于 2021-09-24 01:45:24
尝试为您的情况定义一个函数。因为它会变得更加清晰。
示例代码:
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)https://stackoverflow.com/questions/69308566
复制相似问题