python - 在 Python DataFrame 中查找列值降至零的行
问题描述
我有以下示例数据集,我需要在其中找到 overdue_amount 降至零而loan_balance 列每个loan_id 增加相同数量的行。例如,行 2-> 3, 7 -> 8, 11 -> 12
report_date customer_id loan_id Overdue_Amount Loan_Balance Flag_1
01/01/20 1 12 125000 0 0
02/01/20 1 12 125000 0 1
03/01/20 1 12 0 125000 1
04/01/20 1 13 0 125000 0
05/01/20 1 13 0 125000 0
01/01/20 2 111 0 0 0
02/01/20 2 111 6000 0 1
03/01/20 2 111 0 6000 1
04/01/20 2 112 0 6000 0
01/01/20 3 131 165878 0 0
02/01/20 3 131 165878 0 1
03/01/20 3 131 0 165878 1
04/01/20 3 132 9000 10000 0
05/01/20 3 132 9000 10000 0
06/01/20 3 132 9000 10000 0
07/01/20 3 132 9000 10000 0
解决方案
您可以通过计算列的差异,然后选择一列差异等于另一列差异的负数的行来解决此Overdue_Amount
问题Loan_Balance
。然后提取行索引。
假设您的 DataFrame 被称为df
:
diff = df[['Overdue_Amount', 'Loan_Balance']].diff()
row_idx = diff.index[(diff['Overdue_Amount'] != 0) & (diff['Overdue_Amount'] == -diff['Loan_Balance'])].values
row_idx = np.sort(np.append(row_idx, row_idx + 1))
输出:
array([ 2, 3, 7, 8, 11, 12], dtype=int64)
推荐阅读
- javascript - Vue没有将事件传递给孩子
- eclipse - Scala 应用程序在 Eclipse 中运行但不作为 jar
- angular - 在同一组件的两种样式之间切换
- linux - 如何设置将在 aws ec2 ubuntu 16.04 实例上运行 jar 文件的服务
- android - 为什么我们不能在 Android 中使用多个 RecyclerView 附加相同的 LayoutManager 对象?
- reactjs - 无法使用此方法从内部方法访问 React Native App 对象的属性
- reactjs - 如何使无限滚动获取功能按顺序工作
- javascript - 如何使用 lodash 或不使用 lodash 通过特定值从嵌套 JSON 创建键数组?
- tinymce - 如何在 tinymce 中动态切换 browser_spellcheck
- facebook - 如何将 FB 页面应用 ID 与用户个人资料链接连接起来