【发布时间】:2014-01-17 17:25:49
【问题描述】:
下表代表一个较大的表格,按代码排序(第一列)。对于每个 id(例如 4884),我想用相同的代码识别其他 id 并且 LOG_TIME 下降 在 [start,finish] 范围内(例如,id=4884)。然后,在所有这些条目中,我想计算最高价格。重复这个 所有条目并输入结果作为最高价格新列。
换句话说:
对于数据中的每一行,计算所有其他条目的最高价格 在具有相同代码和重叠 [start,finish] 范围的表中。
代码完成开始 LOG_TIME ID 价格 2 01/03/13 17:53 20/02/13 11:54 20/02/13 11:54 4884 80.5 2 01/03/13 17:53 20/02/13 11:54 26/02/13 10:06 4884 80.5 2 01/03/13 17:53 20/02/13 11:54 01/03/13 10:53 4884 85.1 2 01/03/13 17:53 20/02/13 11:54 01/03/13 17:53 4884 85.1 2 15/04/13 12:26 05/03/13 12:36 05/03/13 12:36 4961 86.25 2 15/04/13 12:26 05/03/13 12:36 08/03/13 11:11 4961 90.85 2 15/04/13 12:26 05/03/13 12:36 11/03/13 10:40 4961 92 2 15/04/13 12:26 05/03/13 12:36 15/04/13 12:26 4961 92 2 15/04/13 12:26 05/03/13 12:36 09/06/13 17:00 4961 92 2 26/06/13 10:55 26/06/13 10:55 26/06/13 10:55 5410 80.5 2 26/06/13 10:55 26/06/13 10:55 26/06/13 10:55 5410 80.5 3 01/01/14 22:50 18/12/13 15:46 18/12/13 15:46 6102 80.5 3 01/12/20 00:00 23/12/13 10:21 23/12/13 10:21 6114 81.65 3 01/01/14 22:50 18/12/13 15:46 01/01/14 22:50 6102 83.95 3 01/01/14 22:50 18/12/13 15:46 01/01/14 22:50 6102 83.95 ………… …… …… …… ……有没有办法在大型数据集上有效地做到这一点?我看不到使用虚拟变量的方法。也许唯一的方法是对每个条目的代码中的所有条目进行 FOR 循环,检查 LOG_TIME 是否在该范围内,然后计算最高价格。
我想知道是否有人可以看到这样做的聪明方法。非常感谢任何帮助!
【问题讨论】:
标签: datetime pandas grouping intersection