我有以下資料框。
data = {'Name': ["Babu", "Shyam", "Raju", "Anuradha", "Kabira"],
'Age': [60, 35, 32, 31, 37],
'Income': [20000, 10000, 8000, 12000, 5000],
'Stupidity Level': [80, 40, 60, 20, 70],
'Expenses': [15000,8000,7000,9000,4000]
}
index = ["Paresh Rawal", "Suniel Shetty", "Akshay Kumar","Tabu", "Gulshan Grover"]
df = pd.DataFrame(data, index)

我試圖找出每個月節省最大金額的行(人)。
savings = df["Income"] - df["Expenses"]
savings.max()
5000
在這種情況下,它應該回傳節省最大 (5000) 的第一行。但我正在嘗試這樣做,但實際上并沒有創建一個新的儲蓄列。所以想做類似的事情
df[savings.max()] # should return the row with maximum savings.
df[(df["Income"] - df["Expenses"]).max()]
但是,當然,這些都行不通。不確定正確的語法。
uj5u.com熱心網友回復:
使用idxmax:
df.loc[df["Income"].sub(df["Expenses"]).idxmax()]
輸出:
Name Babu
Age 60
Income 20000
Stupidity Level 80
Expenses 15000
Name: Paresh Rawal, dtype: object
全部最大值
s = df["Income"].sub(df["Expenses"])
out = df[s.eq(s.max())]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484933.html
下一篇:拆分行以在熊貓中創建標題
