这是一个使用Python pandas库来实现的示例代码,其中使用了groupby和apply方法来按组获取另一列中与idxmax对应的列值:
import pandas as pd
# 创建示例数据
data = {'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
'Value': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# 按组获取另一列中与idxmax对应的列值
result = df.groupby('Group')['Value'].apply(lambda x: x.loc[x.idxmax()])
print(result)
输出结果:
Group
A 20
B 40
C 60
Name: Value, dtype: int64
在这个示例中,首先创建了一个包含两列的DataFrame,其中Group列表示组别,Value列表示对应的值。
然后,使用groupby方法按Group列进行分组,然后使用apply方法对每个组执行自定义的lambda函数。
在lambda函数中,使用x.idxmax()找到每个组中Value列的最大值的索引,然后通过x.loc[x.idxmax()]获取与最大值索引对应的Value列的值。
最后,将结果存储在result变量中,并打印出来。
请注意,这里假设每个组只有一个最大值。如果有多个最大值,将返回第一个最大值对应的值。如果需要获取所有最大值对应的值,可以使用x.loc[x == x.max()]来获取。
上一篇:按组获取具有最小列值的行
下一篇:按组获取每个组的前n行