python - 如何在最大值索引 idxmax() 之前找到索引?

标签 python pandas

<分区>

我有一个以 CountryName 作为索引并将其 GDP 值作为列的数据框。我正在尝试找到 GDP 最高的国家/地区之前的索引(国家/地区名称)。

CountryName   GDP 
US             350
UK             370 
Australia      340 
Germany        500 
France         450

如果我这样做,df['GDP'].idxmax() ,它将返回 Germany。但是有没有简单的方法返回Australia? (最大索引之前的索引)。

最佳答案

shift数据框的方法可以帮助您解决这种情况。

# Initialize dataframe
import pandas as pd
df = pd.DataFrame({
    'CountryName': ['US', 'UK', 'Australia', 'Germany', 'France'],
    'GDP': [350, 370, 340, 500, 450],
})
df = df.set_index('CountryName')

# Get the index value of the row directly before the row with max 'GDP' value
target = df['GDP'].shift(-1).idxmax()

给出结果:

In [1]: target
Out[1]: 'Australia'

关于python - 如何在最大值索引 idxmax() 之前找到索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53732948/

相关文章:

python - 使用另一个数据帧的多索引过滤一个数据帧

python - 将 pandas DataFrame 存储在 PyTables 表中而不存储索引

python - Pandas 缺少 x 刻度标签

python - 为什么 random.random() 占用两个 random.randint() 值?

python - Django 1.6.2 将不再提供静态内容

python - 在 Django rest api 中查询最小和最大大小

python-2.7 - Pandas 根据当前值更新列

Python:在给定索引值处将数据帧插入到更大的数据帧中

python - 在 Python 3 中,计算泰语字符的位置

python - Django:获取查询集/字典中项目的固定值