如何在DataFrame中按Y列分组,计算指定列的均值与最大值?
按Y列分组聚合DataFrame:计算X均值与Z/A/B最大值
原始DataFrame
X Y Z A B 1 7.9 0.2 0.6 0.3 0.75 2 8.9 0.2 0.1 0.8 0.60 3 8.9 0.2 0.9 0.0 0.45 4 4.3 0.3 2.3 0.3 0.35 5 7.8 0.3 2.0 0.6 0.36 6 8.9 0.3 1.3 0.4 0.34 7 1.2 3.4 4.0 3.0 3.50 8 7.8 9.0 0.0 9.0 9.50
需求说明
- 按
Y列分组 - 每组内计算:
X列的平均值(保留两位小数)Z、A、B列的最大值
实现代码
import pandas as pd # 构造原始DataFrame df = pd.DataFrame({ 'X': [7.9, 8.9, 8.9, 4.3, 7.8, 8.9, 1.2, 7.8], 'Y': [0.2, 0.2, 0.2, 0.3, 0.3, 0.3, 3.4, 9.0], 'Z': [0.6, 0.1, 0.9, 2.3, 2.0, 1.3, 4.0, 0.0], 'A': [0.3, 0.8, 0.0, 0.3, 0.6, 0.4, 3.0, 9.0], 'B': [0.75, 0.60, 0.45, 0.35, 0.36, 0.34, 3.50, 9.50] }, index=range(1,9)) # 分组聚合并调整列顺序 result = df.groupby('Y').agg( X=('X', lambda x: round(x.mean(), 2)), Z=('Z', 'max'), A=('A', 'max'), B=('B', 'max') ).reset_index()[['X', 'Y', 'Z', 'A', 'B']] print(result)
输出结果
X Y Z A B 0 8.56 0.2 0.9 0.8 0.75 1 7.00 0.3 2.3 0.6 0.36 2 1.20 3.4 4.0 3.0 3.50 3 7.80 9.0 0.0 9.0 9.50
内容的提问来源于stack exchange,提问作者Dana
相关产品推荐
相关产品推荐

