如何根据pandas数据帧中另一列的值,找到一列中所选实例的最大值



假设我们有一个具有以下格式的数据帧。

  1. 有三列,即日期、ID和状态
  2. ID可能不是每个实例都唯一的,并且可能重复。例如,1、2、2、1、4、5、4、。。。。。。等等

现在,对于该数据帧的给定行,我们需要执行以下操作;

查找变量State在所有未来日期内与该一路领先对应的ID的所有实例上的最大值。

例如,ID号1在索引10、12、40、100处重复,日期分别为31/3/20、30/6/20、30/9/20和31/12/20。现在,在索引编号10处,我们需要找到变量State在索引10、12、40和100上的最大值,因为这些索引出现在当前日期31/3/20之后。在索引12,我们需要找到索引12、40和100上变量State的最大值,因为它们出现在当前日期30/6/20之后,依此类推

数据帧有8000多个唯一的id和100多万个观测值,因此在行上使用for循环会花费太多时间。有快速的方法吗?

df = df.sort_values('Date', ascending=False).drop_duplicates(['ID'])

这会为您提供每个ID的最新日期。

相关内容

最新更新