python - 如果其他逻辑无法正常工作,熊猫
问题描述
我有一个这样的数据框,
ID F/P FTE Actual FTE Calculated
1 F 100 100
2 F 110 110
3 P 90 100
4 P 90 90
我要生成结果列
如果 FTE Actual 不等于 FTE Calculated,则结果为 FALSE,我们不再检查。
如果为真,则查看 F/P 列,如果 F/P 列的值为 F,则 FTE_Calculated 应等于 100。
如果为真,则查看 F/P 列,如果 F/P 列的值为 P,则 FTE_Calculated 应小于 100。
ID F/P FTE Actual FTE Calculated Expected Result
1 F 100 100 True
2 F 110 110 False (as it is more than 100)
3 P 90 100 False
4 P 90 90 True
解决方案
如果有很多条件,最好的可读性是创建每个条件以分隔行,然后|
按照&
您的逻辑链接:
m1 = df['FTE Actual'] == df['FTE Calculated']
m2 = df['F/P'] == 'F'
m3 = df['FTE Calculated'] == 100
m4 = df['F/P'] == 'P'
m5 = df['FTE Calculated'] < 100
df['Expected Result'] = m1 & ((m4 & m5) | (m2 & m3))
print (df)
ID F/P FTE Actual FTE Calculated Expected Result
0 1 F 100 100 True
1 2 F 110 110 False
2 3 P 90 100 False
3 4 P 90 90 True
推荐阅读
- wordpress - 更改 Wordpress 插件的日志翻译
- php - 从不包含已定义数组的 JSON 中修剪数据?
- boost-asio - io_context::strand 可以保证 async_* 完成处理程序和自定义函子之间的顺序吗?
- elastic-stack - 将 Logstash 日期过滤器从当前日期设置为过去 3 天
- html - 使 div 始终为 100% 高度
- sas - 函数 LAG 中的动态 n
(变量)SAS - tableview - UITableView 上的 UITableViewVibrantCell
- cordova - 从 Cordova 将自定义 maven 存储库添加到 build.gradle
- javascript - 使用带有 Javascript 的 Executescript 在 NiFi 中合并 json 流文件
- c# - 如何访问参数