一、数据需求
原数据如下,现在需求是将收益等于0的补贴为10,需要进行数据转换
![](https://img.haomeiwen.com/i14155586/eafe85c8b69626df.png)
二、操作过程
下面使用lambda和if..else进行转换:
df2['收益'] = df2['收益'].apply(lambda x: 10 if x==0 else x)
![](https://img.haomeiwen.com/i14155586/597a8bbfbcd3a093.png)
三、进一步延申
需求改为:
收益小20的补贴为10,大于等于20小于50转换为30,大于等于50不变,又该如何解决这个问题呢???
原数据如下:
![](https://img.haomeiwen.com/i14155586/477ca0b4d3e11ad1.png)
下面来解决这个问题:
df3['收益']=df2['收益'].apply(lambda x:10 if x<20 else (20 if x<50 else x))
![](https://img.haomeiwen.com/i14155586/2e22033158095f3c.png)
四、用法总结
lamada(表达式 if 条件 else (表达式 if 条件 else(…………)))
网友评论