亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

料青山看我應如是 2021-09-14 17:26:54
我有一個以 CountryName 為索引的數據框,并將其 GDP 的值作為列。我試圖找到最大 GDP 國家之前的指數(國家名稱)。CountryName   GDP US             350UK             370 Australia      340 Germany        500 France         450如果我這樣做,df['GDP'].idxmax()它會返回Germany。但是有沒有簡單的返回方法Australia?(最大索引之前的索引)。
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

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'


查看完整回答
反對 回復 2021-09-14
?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

您可以使用np.ndarray.argmax索引并為其編制索引:

res = df.index[df['GDP'].values.argmax() - 1]  # Australia


查看完整回答
反對 回復 2021-09-14
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

這行得通嗎?


df = pd.DataFrame({'CountryName': ['US', 'UK', 'Australia', 'Germany', 'France'], 'GDP': [350, 370, 340, 500, 450]})

print(df['CountryName'][df['GDP'].idxmax()-1])

# Australia

我可以看到的一個問題是,最高的GDP索引0是否會返回數據框中的CountryName位置-1或最后一個國家/地區。


查看完整回答
反對 回復 2021-09-14
  • 3 回答
  • 0 關注
  • 294 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號