【发布时间】:2018-05-30 16:00:54
【问题描述】:
我有一个 Pandas 数据框如下,它必须按 Col_2 排序:
+----+-------+-------+
| id | Col_1 | Col_2 |
+----+-------+-------+
| 1 | 0 | 21 |
| 1 | 1 | 24 |
| 1 | 1 | 32 |
| 1 | 0 | 35 |
| 1 | 1 | 37 |
| 2 | 0 | 2 |
| 2 | 0 | 5 |
+----+-------+-------+
如何创建两个新列:
Col_1_sum:每个 id 的前几行中的值的总和。 Col_2_max:Col_2 在 Col_1 为 1 的最后几行中的最大值。 (对于每个 id)
例如对于上面的数据框,结果应该是:
+----+-------+-------+-----------+-----------+
| id | Col_1 | Col_2 | Col_1_Sum | Col_2_Max |
+----+-------+-------+-----------+-----------+
| 1 | 0 | 21 | 0 | 0 |
| 1 | 1 | 24 | 0 | 0 |
| 1 | 1 | 32 | 1 | 24 |
| 1 | 0 | 35 | 2 | 32 |
| 1 | 1 | 37 | 2 | 32 |
| 2 | 0 | 2 | 0 | 0 |
| 2 | 0 | 5 | 0 | 0 |
+----+-------+-------+-----------+-----------+
【问题讨论】:
标签: python pandas dataframe group-by pandas-groupby