You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中按Floor列分组,获取UV列绝对值最大的原始值?

按Floor分组获取UV列绝对值最大的原始值

原始DataFrame df_1:

Floor  UV
1   1      -2
2   1      3
3   1      -5
4   1      4
5   2      14
6   2      -15

你当前使用的代码df_1.loc[df_1.groupby("Floor")["UV"].idxmax()]是直接取每组UV的最大值对应的行,不符合“取绝对值最大的原始值”的需求。

实现方案

核心思路是基于UV的绝对值判断每组的最大值位置,再定位原始行:

方法一:通过lambda表达式直接计算

output_df = df_1.loc[df_1.groupby("Floor")["UV"].apply(lambda x: x.abs().idxmax())]

方法二:添加临时绝对值列(更直观)

# 生成UV的绝对值临时列
df_1['UV_abs'] = df_1['UV'].abs()
# 按Floor分组,获取每组UV_abs最大的行索引
max_abs_indices = df_1.groupby("Floor")["UV_abs"].idxmax()
# 提取目标行并删除临时列
output_df = df_1.loc[max_abs_indices].drop('UV_abs', axis=1)

最终输出结果

Floor  UV
3   1      -5
6   2      -15

内容的提问来源于stack exchange,提问作者Hür Doğan ÜNLÜ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 23:04:54