0

我正在使用 Python/Pandas 并在下面有数据框 (1)。我已按 ID 对其进行分组,然后针对每个 ID 取每组修订中修订号的最大值,以生成下面的系列 (2)。

我现在想将 (1) 合并到 (2) 中,以便将 (1) 的前 2 列与 (2) 的相应列相匹配,适当地拉入 (2) 中的另一列 [实际上(1)的数据集,'id','revision'和'color'不一定是连续的列,还有其他列]。

我基本上将 (2) 视为关键并从 (1) 中提取适当的数据。

如何使用 Pandas 执行此操作?

提前致谢。

最大限度。

(1) 数据框

ID         Revision Colour
14446   0   red
14446   0   red
14446   0   red
14466   1   red
14466   1   red
14466   0   red
14466   1   red
14466   1   red
14466   0   red
14466   2   red
14466   0   red
14466   1   red
14466   0   red
14471   0   green
14471   0   green
14471   0   green
14471   0   green
14473   0   blue
14473   1   blue
14473   0   blue

(2) 系列

ID                   Revision
13125                 1
13213                 0
13266                 0
13276                 0
13277                 1
13278                 0
13280                 2
13285                 0
13287                 1
13288                 0
13291                 1
13292                 1
4

1 回答 1

2

Sort by revision, then group by ID and take the last element from each group.

In [2]: df.sort('Revision').groupby(level=0).last()
Out[2]: 
       Revision Colour
ID                    
14446         0    red
14466         2    red
14471         0  green
14473         1   blue

I assumed ID is an index. If it's a column, groupby('ID') instead.

于 2013-08-12T19:27:24.073 回答