【发布时间】:2021-08-08 15:55:57
【问题描述】:
您好,我有一个要清理的 pandas 数据框。这是一个示例:
| IDBILL | IDBUYER | BILL | DATE |
|---|---|---|---|
| 001 | 768787 | 45 | 1897-07-24 |
| 001 | 768787 | 67 | 1897-07-24 |
| 001 | 768787 | 98 | 1897-07-24 |
| 002 | 768787 | 30 | 1897-07-24 |
| 002 | 768787 | 15 | 1897-07-24 |
| 002 | 768787 | 12 | 1897-07-24 |
| 005 | 786545 | 45 | 1897-08-19 |
| 008 | 657676 | 89 | 1989-09-23 |
| 009 | 657676 | 42 | 1989-09-23 |
| 010 | 657676 | 18 | 1989-09-23 |
| 012 | 657676 | 51 | 1990-03-10 |
| 016 | 892354 | 73 | 1990-03-10 |
| 018 | 892354 | 48 | 1765-02-14 |
| 020 | 892354 | 62 | 1765-02-14 |
我想删除最高的账单(并在同一天由同一 IDBUYER 制作账单时保留最低的账单,并且其账单 ID 彼此跟随。 要得到这个:
| IDBILL | IDBUYER | BILL | DATE |
|---|---|---|---|
| 002 | 768787 | 30 | 1897-07-24 |
| 002 | 768787 | 15 | 1897-07-24 |
| 002 | 768787 | 12 | 1897-07-24 |
| 005 | 786545 | 45 | 1897-08-19 |
| 010 | 657676 | 18 | 1989-09-23 |
| 012 | 657676 | 51 | 1990-03-10 |
| 016 | 892354 | 73 | 1990-03-10 |
| 018 | 892354 | 48 | 1765-02-14 |
| 020 | 892354 | 62 | 1765-02-14 |
提前谢谢你
【问题讨论】:
-
为什么最后一行没有去掉?
-
因为020没有跟在018后面,去掉它应该是019。
-
当您说“删除最高账单”时,您的意思是按 IDBILL 汇总并删除较高金额吗?那么如果 IDBILL 002 的每张账单都有 100,它就会被删除,而 001 会留下来吗?
-
例如,对于 001,您将 3 个中最低的账单与三个 002 中的最低账单进行比较。如果每个 002 的账单有 100 个,则三个 002 将被删除,而三个 001 会留下来。