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

如何获取DataFrame中2015与1990列差值最大的国家名称?

解决方法

先修正你代码里的两个明显问题:

  • 你写了df['2020'],但你的DataFrame里只有2015列,这是笔误;
  • 你要的是差值的最大值(看例子里Germany的40-7=33是最大的),如果不需要绝对值就去掉.abs(),要是想找变化幅度最大的(不管正负)再保留这个方法。

下面是两种不用新增列、直接拿到国家名称的写法:

写法一:通过索引定位国家

# 先算差值,取最大值对应的行索引,再提取该行的Country值
max_diff_country = df.loc[(df['2015'] - df['1990']).idxmax(), 'Country']
print(max_diff_country)

写法二:直接取差值最大的行

# 按差值排序后取第一行的Country
max_diff_country = df.nlargest(1, lambda row: row['2015'] - row['1990'])['Country'].iloc[0]

如果你的需求是找绝对值最大的差值(比如某个国家数值下降很多,绝对值比增长的还大),只需要在计算差值时加.abs():

max_abs_diff_country = df.loc[(df['2015'] - df['1990']).abs().idxmax(), 'Country']

这几种方法都不用新增列,直接返回你要的国家名称字符串。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 03:42:14