假設數據如下:
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