要按组减少pandas数据帧中多列的最大值,可以使用groupby()
函数和transform()
函数。
下面是一个示例代码:
import pandas as pd
# 创建示例数据帧
data = {'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
'Col1': [10, 20, 30, 40, 50, 60],
'Col2': [100, 200, 300, 400, 500, 600]}
df = pd.DataFrame(data)
# 按组计算每列的最大值
max_values = df.groupby('Group').transform('max')
# 将每列的最大值从原始数据帧中减去
df[['Col1', 'Col2']] = df[['Col1', 'Col2']] - max_values[['Col1', 'Col2']]
print(df)
输出结果:
Group Col1 Col2
0 A -10 -100
1 A 0 0
2 B -10 -100
3 B 0 0
4 C -10 -100
5 C 0 0
在这个示例中,我们首先使用groupby('Group')
将数据帧按照'Group'列进行分组。然后,使用transform('max')
计算每个组中每列的最大值,并将结果赋给max_values
。最后,我们将原始数据帧中的每列减去相应的最大值,得到减少后的结果。
下一篇:按组检索仅最大计数记录