pandas groupby max

假設數據如下:

array =  [
    ['a', 2],
    ['a', 1],
    ['a', 0],
    ['b', 2],
    ['b', 4],
    ['b', 6],
]
data = pd.DataFrame(array, columns=["name", "age"])

數據如下:

  name  score
0    a      2
1    a      1
2    a      0
3    b      2
4    b      4
5    b      6

求每個人的最高分

需求1,每條記錄後面跟一個最大值,即新增一列爲每個人的最大值

transfrom關鍵字

data['max_socre'] = data.groupby('name')['score'].transform('max')
print(data)

結果如下

  name  score  max_socre
0    a      2          2
1    a      1          2
2    a      0          2
3    b      2          6
4    b      4          6
5    b      6          6

需求2, 只保留每個人的最高分

agg關鍵字或者直接max

data1 = data.groupby('name')["score"].max().reset_index()

data2 = data.groupby('name')["score"].agg('max').reset_index()

結果如下

  name  score
0    a      2
1    b      6
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章