如何快速计算列内不同X分组对应Y值的最小值与最大值
分组计算对应Y值最值的实现方法
不用逐组手动统计,直接用结构化数据工具的分组聚合功能就能一键算出所有结果,常用实现如下:
Python(Pandas 工具)
如果使用Python处理数据,将数据集读为DataFrame后执行一行代码即可:
df.groupby('X')['Y'].agg(Y_min='min', Y_max='max').reset_index()
执行后会直接输出所有X分组下对应的Y最小值、最大值,无需手动筛选每组数据。
R 工具
从你贴出的数据集打印格式来看,大概率是用R做数据处理,两种常用写法都可以快速实现:
dplyr语法:df |> dplyr::group_by(X) |> dplyr::summarise(Y_min = min(Y, na.rm = TRUE), Y_max = max(Y, na.rm = TRUE))data.table语法(和你给出的数据集打印格式完全匹配):dt[, .(Y_min = min(Y, na.rm = TRUE), Y_max = max(Y, na.rm = TRUE)), by = X]
注意:如果数据集存在Y值缺失的情况,pandas的min/max默认会自动忽略空值;R中必须在min/max函数里加
na.rm = TRUE参数,否则遇到空值会返回NA结果。
你当前数据集的计算结果
按照上述方法运行后,你会直接得到以下结果:
- X=2:Y最小值为1.973203,最大值为1.998701
- X=5:Y最小值为4.726402,最大值为4.975043
- X=10:Y最小值为8.808622,最大值为9.719726
- X=30:Y最小值为19.758713,最大值为24.593082
内容的提问来源于stack exchange,提问作者Zohaib
相关产品推荐
相关产品推荐

