假设我们有一个名为data
的数据框,包含姓名(Name)和其他列(Column1,Column2,Column3)的数据。我们可以使用groupby
函数按姓名分组,并使用max
函数找到每个分组中的最大值,然后使用transform
函数将每个分组中的值替换为最大值。
以下是一个示例代码:
import pandas as pd
# 创建示例数据框
data = pd.DataFrame({
'Name': ['John', 'Alice', 'John', 'Bob', 'Alice'],
'Column1': [1, 2, 3, 4, 5],
'Column2': [6, 7, 8, 9, 10],
'Column3': [11, 12, 13, 14, 15]
})
# 按姓名分组,并用最大值替换值
data['Column1'] = data.groupby('Name')['Column1'].transform('max')
data['Column2'] = data.groupby('Name')['Column2'].transform('max')
data['Column3'] = data.groupby('Name')['Column3'].transform('max')
print(data)
输出结果:
Name Column1 Column2 Column3
0 John 3 8 13
1 Alice 5 10 15
2 John 3 8 13
3 Bob 4 9 14
4 Alice 5 10 15
在上述示例中,我们首先使用groupby('Name')
将数据按姓名分组。然后,我们使用transform('max')
找到每个分组的最大值,并将其应用于相应的列。最后,我们打印输出结果。
上一篇:按姓名分组对数值属性求和
下一篇:按行名过滤嵌套矩阵