python lambda if嵌套_如果在Python中使用lambda,则嵌套

在处理数据集时,遇到了一个需求:比较最大年份与特定年份(b1920, b1945, b1975, b1995)的值,当构建年份大于1500时,根据匹配的年份返回相应的年份值。尝试的代码使用了for循环和if嵌套,但在实际应用中遇到了问题。数据集包含了不同时间段的建筑计数信息,需要修正代码以正确处理这种情况。" 80700224,7697705,LSB信息隐藏算法的扩展应用,"['信息隐藏', 'LSB', 'MATLAB', '图像处理', '视觉感知']
摘要由CSDN通过智能技术生成

我有一个这样的数据集:Build_year Max_cnt_year b1920 b1945 b1975 b1995

NaN 120 120 35 45 70

0 67 35 67 21 34

1921 145 39 67 22 145

...

期望输出:

^{pr2}$

我想将最大年份与b1920、b1945、b1975、b1995的值进行比较,如果与该年份匹配,我希望相应地分配值,条件是构建年份>1500

我尝试此代码失败:def mapper(item):

max_val = df_all['max_cnt_year']

comp_val=df_all['build_year']

for comp in comp_val:

if comp<1500 or comp is None:

if max_val==df_all['b1920']:

return 1920

elif max_val==df_all['b1945']:

return 1945

elif max_val==df_all['b1970']:

return 1970

elif max_val==df_all['b1995']:

return 1995

else: return 2005

else: return comp_val

df_all['build_year1'] = map(mapper, df_all)

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值