小编Ksh*_*Ksh的帖子

基于另一列的熊猫滚动第二个最高值

对于以下示例数据:

data={'Person':['a','a','a','a','a','b','b','b','b','b','b'],
     'Sales':['50','60','90','30','33','100','600','80','90','400','550'],
     'Price':['10','12','8','10','12','10','13','16','14','12','10']}
data=pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

对于每个人(组),我希望以滚动方式根据第二高的销售额计算价格,但每个组的窗口会有所不同。结果应如下所示:

result={'Person':['a','a','a','a','a','b','b','b','b','b','b'],
     'Sales':['50','60','90','30','33','100','600','80','90','400','550'],
     'Price':['10','12','8','10','12','10','13','16','14','12','10'],
     'Second_Highest_Price':['','10','12','12','12','','10','10','10','12','10']}
Run Code Online (Sandbox Code Playgroud)

我尝试使用 nlargest(2) 但不确定如何让它在滚动的基础上工作。

python pandas rolling-computation

6
推荐指数
1
解决办法
109
查看次数

标签 统计

pandas ×1

python ×1

rolling-computation ×1