python - 使用 Python Pandas 数据框的 if/else
问题描述
为菜鸟问题道歉,但我在 python 条件下苦苦挣扎。
具有以下数据框:
id bonus
1 1.5
2 1.12
3 1.09
4 0.9
5 0.74
6 0.83
我有上限和下限变量:
upper_limit = 1.2
lower limit = 0.8
尝试编写一个条件:1)检查奖金是否高于或低于阈值 2)创建一个新列,以确保值不会高于或低于阈值。如果奖金值在范围内,则不会改变。
应该看起来像:
id bonus bonus_capped
1 1.5 1.2
2 1.12 1.12
3 1.09 1.09
4 0.9 0.9
5 0.74 0.8
6 0.83 0.83
我的代码是:
conditions = [df["bonus"] > upper_limit, df["bonus"] < lower_limit]
choices = [upper_limit, lower_limit]
df["bonus_capped"] = np.select(conditions, choices)
print(df)
但我得到的输出只是解决一个条件,其余的返回零。我错过了什么?
id bonus bonus_capped
1 1.5 0
2 1.12 0
3 1.09 0
4 0.9 0
5 0.74 0.8
6 0.83 0
解决方案
这将很容易使用numpy.clip
:
import numpy as np
df['bonus_capped'] = np.clip(df['bonus'], 0.8, 1.2)
其中 0.8 和 1.2 分别是您的下限和上限。
推荐阅读
- amazon - 为 Screen Sample App 添加新的 Alexa 技能
- java - 未包含错误但仍无法执行代码
- docker - Kubernetes:同一个 pod 中的两个容器无法通过 localhost 连接
- odoo - 如何将域添加到 Odoo 中的 Many2one 字段?
- mysql - mysqldump 通过 cmd 语法转储远程数据库
- xml - 哪个 XPath 工具可以处理大量(50k+)的 xml 行?
- scala - 在 scala 中键入安全的多米诺骨牌
- flutter - 这个冒号和双点在 Flutter 中是什么意思?
- swiftui - SwiftUI:如何让服务器数据显示?
- python - 在更改计数图的条形宽度时,条形的相对位置会从 x 刻度偏移。我们如何解决这个问题?