python - 如何根据条件计算一行中的值的数量 - pandas
问题描述
我想计算一行中的元素数量并根据前一个元素减去一个值。我可以在 for 循环中做到这一点,但它太慢了。我想在 Target 列中每次出现 0 或 2 时收取 7 美元的费用,但如果之前的 Target 等于当前的目标则不会。Target == 1 的费用为 0 美元,如果出现的新目标不是 1 或当前目标,则费用为 7 美元。我的 df 中有 Target,但我想计算费用。df 上的示例
输入:
df.head(10)
Target Fee
1 0
1 0
1 0
0 -7
0 0
0 0
2 -7
2 0
1 0
2 -7
解决方案
国际大学联盟:
df['Fee'] = (df.Target.diff().ne(0) & df.Target.isin([0,2])) * (-7)
输出:
Target Fee
0 1 0
1 1 0
2 1 0
3 0 -7
4 0 0
5 0 0
6 2 -7
7 2 0
8 1 0
9 2 -7
推荐阅读
- angularjs - Aws S3 托管的 Angular 应用程序 - 当调用 api url 时,它会将 s3 存储桶 url 修改为
- android - 如何使用 parcelize 在干净的架构项目中构建 DTO 类?
- c# - 将所有查询的结果作为未知类型的列表返回
- android - Android Studio:如何恢复默认控制台选项卡(恢复默认布局不起作用)
- ag-grid - 使用 groupRowRenderer 箭头前的间距
- spring - 在响应内容类型下拉列表中默认选择 application/xml
- android - 带有远程视图的 Android 10 上的黑暗通知
- javascript - 修改自动建议以允许多个实例
- c# - 如何将 JSON 文件读入指定值的字符串并使用 System.Text.Json?
- reactjs - 单击一行后,React MUIDatatable 触发器将转到不同的页面