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

如何高效计算国家DataFrame中各国家温度极差的最大值?

更高效的实现方法

你的思路是可行的,但两次单独调用groupby会重复处理数据,对于大型数据集来说效率偏低。以下是两种更优的实现方式,只需要一次分组操作就能完成计算:

方法1:使用agg一次性计算最大最小值

通过agg方法在一次分组中同时获取每个国家的温度最大值和最小值,再计算差值并取全局最大值:

# 分组后同时统计max和min,计算差值后取最大
temp_stats = df.groupby('country_code')['temperature'].agg(['max', 'min'])
max_temp_change = (temp_stats['max'] - temp_stats['min']).max()

方法2:直接计算分组内的温度范围

利用apply直接在每个分组中计算温度的极差(max - min),再取所有极差中的最大值:

# 分组后直接计算每个组的温度极差,再取全局最大
max_temp_change = df.groupby('country_code')['temperature'].apply(lambda x: x.max() - x.min()).max()

效率对比

  • agg方法的性能更优,因为它基于pandas的向量化操作实现,避免了Python层面的循环;
  • apply方法虽然代码更简洁,但本质是逐组执行Python函数,在数据量较大时速度会慢于agg。

内容的提问来源于stack exchange,提问作者Mampfi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:47:32