有没有办法抓取一组的最后一个项目

nie*_*sen 6 python dataframe pandas

说我有一个 DataFrame

data = {'Column 1':     [ 1, 1, 2, 2, 2, 3, 4, 4, 4, 4], 
        'Column 2':     [ 1, 2, 1, 2, 3, 1, 1, 2, 3, 4], 
        'Column 3':     [ 1, 2, 1, 4, 3, 6, 1, 2, 7, 5]}

df = pd.DataFrame(data=data)
Run Code Online (Sandbox Code Playgroud)

我想获取第 2、5、6 和 10 行,因为它们是第 1 列中每个值的最后一行。假设第 1 列是一个 ID,第 2 列表示该 ID 的编号。我需要它为第 1 列中的每个数字选择第 2 列中的最大数字,并保留第 3 列而不更改第 2 列和第 3 对。

所以我从

1  1  1
1  2  2
2  1  1
2  2  4
2  3  3
3  1  6
4  1  1
4  2  2
4  3  7
4  4  5
Run Code Online (Sandbox Code Playgroud)

1  2  2
2  3  3
3  1  6
4  4  5
Run Code Online (Sandbox Code Playgroud)

如果我做

df.groupby(['Column 1']).max()
Run Code Online (Sandbox Code Playgroud)

我没有得到我想要的,因为它会使第 2 列和第 3 列最大化。

piR*_*red 7

groupby/tail

df.groupby('Column 1').tail(1)

   Column 1  Column 2  Column 3
1         1         2         2
4         2         3         3
5         3         1         6
9         4         4         5
Run Code Online (Sandbox Code Playgroud)