Python 查找组返回整行的最大值
如果这是重复的,请原谅。看起来应该是这样的,但我已经搜索了所有建议和更多 我有这张桌子Python 查找组返回整行的最大值,python,pandas,Python,Pandas,如果这是重复的,请原谅。看起来应该是这样的,但我已经搜索了所有建议和更多 我有这张桌子 Look_Back_Months Total Spread Return sector 10 11 0.038961 Apartment 20 21 0.078029 Apartment 30 31 0.079272 Apa
Look_Back_Months Total Spread Return sector
10 11 0.038961 Apartment
20 21 0.078029 Apartment
30 31 0.079272 Apartment
40 5 0.013499 Office
50 15 0.018679 Office
60 25 -0.003378 Office
我想回去
Look_Back_Months Total Spread Return sector
30 31 0.079272 Apartment
50 15 0.018679 Office
我尝试了groupby
,agg
,我一直在返回最大回望月数和总差价回报。或者只是其中一个
谢谢您可以将
groupby.max
与transform
一起使用
g = df.groupby('sector')['TotalSpreadReturn'].transform('max')
res = df[df['TotalSpreadReturn'] == g]
print(res)
Look_Back_Months TotalSpreadReturn sector
30 31 0.079272 Apartment
50 15 0.018679 Office
如果有必要,这包括重复的最大值并保持索引顺序。您可以将
groupby.max
与transform
一起使用
g = df.groupby('sector')['TotalSpreadReturn'].transform('max')
res = df[df['TotalSpreadReturn'] == g]
print(res)
Look_Back_Months TotalSpreadReturn sector
30 31 0.079272 Apartment
50 15 0.018679 Office
如果重要的话,这包括重复的最大值并保持索引顺序。使用
df.sort_values('TotalSpreadReturn').drop_duplicates('sector',keep='last')
Out[270]:
Look_Back_Months TotalSpreadReturn sector
50 15 0.018679 Office
30 31 0.079272 Apartment
利用
df.sort_values('TotalSpreadReturn').drop_duplicates('sector',keep='last')
Out[270]:
Look_Back_Months TotalSpreadReturn sector
50 15 0.018679 Office
30 31 0.079272 Apartment