python - pandas数据框中的lambda函数中的多个条件
问题描述
我正在尝试通过 lambda 函数传递多个条件语句,在我的 pandas Dataframe 中创建一个新列。
我的问题与这个问题非常相似:Lambda 包括 if...elif...else 但该解决方案似乎不适用于我的 python 版本(3.7)。
这是我到目前为止所拥有的:
在一个条件下,这是有效的:
ops['repair_location'] = ops['depot_name'].apply(lambda x: 'Field' if x == 'Field else 'Depot')
但我想添加另一个条件。使用链接问题的解决方案:
ops['repair_location'] = ops['depot_name'].apply(lambda x: 'Field' if x == 'Field' else (x == 'Unknown Location' 'Unknown Location' else 'Depot'))
这将返回指向最后一条else
语句的语法错误。
解决方案
我们通常做 np.select
s1=ops['depot_name']=='Field'
s2=ops['depot_name']=='Unknown Location'
ops['repair_location']=np.select([s1,s2],['Field','Unknown Location'],default='Depot')
推荐阅读
- reactjs - useState 未按预期运行
- python - Python 将表格抓取到数据框中
- python - 你如何向python输入一些东西
- java - 为什么我的 Gremlin 遍历只添加了一条边?
- mysql - 用于 if ... then 语句的表锁定状态 - MySQL
- python - 在 python pygame 中随机(从列表中)和无限期地运行歌曲列表(无需使用按钮手动更改歌曲)
- python - 基于值在日期之间迭代并从上一个日期拉出数量
- sql - SQLite:计算匹配多个条件的条目数的百分比
- c# - CefSharp使用DevToolsClient执行方法后,调用Wait()函数等待,导致程序卡死?
- c# - 如何根据字符串更改获取组件类?