我试图根据像这样的数据框中的人的大小来推断分类:
Size
1 80000
2 8000000
3 8000000000
...
我希望它看起来像这样:
Size Classification
1 80000 <1m
2 8000000 1-10m
3 8000000000 >1bi
...
我理解理想的过程是应用这样的lambda函数:
df['Classification']=df['Size'].apply(lambda x: "<1m" if x<1000000 else "1-10m" if 1000000
我检查了几个关于lambda函数中的多个ifs的帖子,here is an example link,但是这个synthax在多个ifs语句中由于某种原因不适合我,但是它在单个if条件下工作.
所以我尝试了这个“非常优雅”的解决方案:
df['Classification']=df['Size'].apply(lambda x: "<1m" if x<1000000 else pass)
df['Classification']=df['Size'].apply(lambda x: "1-10m" if 1000000 < x < 10000000 else pass)
df['Classification']=df['Size'].apply(lambda x: "10-50m" if 10000000 < x < 50000000 else pass)
df['Classification']=df['Size'].apply(lambda x: "50-100m" if 50000000 < x < 100000000 else pass)
df['Classification']=df['Size'].apply(lambda x: "100-500m" if 100000000 < x < 500000000 else pass)
df['Classification']=df['Size'].apply(lambda x: "500m-1bi" if 500000000 < x < 1000000000 else pass)
df['Classification']=df['Size'].apply(lambda x: ">1bi" if 1000000000 < x else pass)
可以看出“pass”似乎也不适用于lambda函数:
df['Classification']=df['Size'].apply(lambda x: "<1m" if x<1000000 else pass)
SyntaxError: invalid syntax
关于Pandas中apply方法中lambda函数内多个if语句的正确synthax的任何建议?多线或单线解决方案对我有用.
更多推荐
python中多重if语句用法_python – 在Pandas中使用Apply使用多个if语句的Lambda函数
发布评论