python - 如果从另一列满足字符串条件,则在 Pandas 中执行计算
问题描述
我有以下数据框
Day Sales Qty Paid
1 10 2 Y
2 20 5 N
3 30 5 N
4 20 6 Y
5 50 2 Y
我只是希望创建另一个相乘的列Sales
,Qty
如果Paid
列 = Y
,如果不是,Y
则计算0 - df['Qty']
我试过了:
df['total'] = df['Paid'].apply(lambda x: df['Sales']*df['Qty'] if x == 'Y' else (0-df['Qty'])
我得到一个TypeError: unsupported operand type(s) for -: 'str' and 'int'
也开放更快/更有效的方式来完成这个过程。任何帮助将不胜感激!
解决方案
推荐阅读
- mongodb - MongoDb 聚合减少返回不正确的结果
- c++ - 我正在尝试在 boost 内存映射文件中创建一个带有向量值的 C++ 映射
- javascript - 重定向未正确重新加载页面
- laravel - Laravel 在包含多个额外字段的多对多上使用同步
- pandas - 在数据框列周围带有布尔条件的嵌套 if 语句
- swift - 如何基于 Int 创建新的类型安全原始类型?
- javascript - 反应构建块文件和清单 json 中的意外语法错误
- oracle-apex - 如何防止应用程序在 Google Chrome 中打开
- ios - Swift 组合:`first(_ n: Int)` 等价于 RxSwift `take(_ n: Int)`?
- python - Sklearn(NLP 文本分类器新手) - 形状和矢量化器的问题,X 和 Y 不匹配