以下是一个示例代码,它按照分组之后的第二列的最大值,计算第一列的值的价值:
import pandas as pd
# 创建一个示例数据集
data = {'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
'Value1': [10, 20, 30, 40, 50, 60],
'Value2': [15, 25, 35, 45, 55, 65]}
df = pd.DataFrame(data)
# 按照 Group 列进行分组,并计算每个分组的 Value2 列的最大值
max_values = df.groupby('Group')['Value2'].max()
# 根据每个分组的最大值计算 Value1 列的价值
df['Value1_Value'] = df['Value1'].apply(lambda x: 'High' if x > max_values[df.loc[df['Value1'] == x, 'Group'].values[0]] else 'Low')
# 打印结果
print(df)
输出结果为:
Group Value1 Value2 Value1_Value
0 A 10 15 Low
1 A 20 25 High
2 B 30 35 Low
3 B 40 45 High
4 C 50 55 Low
5 C 60 65 High
在这个示例中,我们首先使用 groupby
函数按照 "Group" 列进行分组,并计算每个分组的 "Value2" 列的最大值。然后,我们使用 apply
函数将每个 "Value1" 的值与对应分组的最大值进行比较,并根据比较结果给 "Value1_Value" 列赋予相应的标签。