Pandas 列中每个组的第二个最大值
我想要每个城市的第二大销售额Pandas 列中每个组的第二个最大值,pandas,max,Pandas,Max,我想要每个城市的第二大销售额 没有这样模拟的样本数据 排序、移位和取第一个值给出您想要的结果 状态 出售 加利福尼亚 11 佛罗里达州 8. 您可以按降序对Sales列进行排序,然后在每组的第二行中使用。请注意,nth()中的n为零索引 US\u Sales.sort\u值(['State','Sales',升序=[True,False]).groupby('State').nth(1).重置\u索引() 您也可以选择最大的2个值,然后通过各种方法保留最后一个值: largest2=df.s
您可以按降序对
Sales
列进行排序,然后在每组的第二行中使用。请注意,nth()
中的n
为零索引
US\u Sales.sort\u值(['State','Sales',升序=[True,False]).groupby('State').nth(1).重置\u索引()
您也可以选择最大的2个值,然后通过各种方法保留最后一个值:
largest2=df.sort_值(['State','Sales'],升序=[True,False]).groupby('State')['Sales'].nlargest(2)
#方法1
#按“状态”删除重复项,保留最后一个
largest2.reset_index().drop('level_1',axis=1)。drop_副本(['State'],keep='last')
#方法2
#按“状态”分组,保留最后一个
largest2.groupby('State').tail(1).重置索引().drop('level_1',轴=1)
您可能需要查找而不是.nlargest()
US_Sales=pd.read_excel("C:\\Users\\xxxxx\\Desktop\\US_Sales.xlsx")
US_Sales
US_Sales.State.nlargest(2,'Sales').groupby(['Sales'])
df = pd.DataFrame([{"state":"Florida","sales":[22,4,5,6,7,8]},
{"state":"California","sales":[99,9,10,11]}]).explode("sales").reset_index(drop=True)
df.sort_values(["state","sales"], ascending=[1,0]).groupby("state").agg({"sales":lambda x: x.shift(-1).values[0]})