沿非时间日期列滚动聚合

时间:2019-10-10 07:25:49

标签: python pandas

我想知道是否有一种方便的方法来计算滚动平均值,以使窗口沿某些非时间日期列移动并汇总其他列的值?

更具体地说,我想在“成功”列中计算True值的比率。窗口应沿着“公司收入”列移动,以便从具有“公司收入” +-当前窗口位置的一些行的行进行汇总。

Pandas具有df.rolling()功能,但我认为这并不适合此类任务。

我目前正在考虑使用“公司收入”列来创建一个新的数据框,以显示我希望窗口继续显示的值。然后我会用.apply() 从原始数据框中过滤数据,该数据包含属于当前“公司收入”窗口的行,计算“成功”为True的比率,并将比率值保存到新数据框中的新列。这种方法似乎很笨拙,我想知道是否还有更好的方法?

我想要的例子:

原始数据框(按公司收入排序,以提高可读性)

'Company revenue'    'Success'
              51      False
             101      True
             151      False
             201      True
             201      True
             301      False
             351      False
             501      True
             601      False

想要的结果,“公司收入”的窗口跨度为100,窗口大小为+ -200

'Company revenue'    'Success rate%'
               0     0.33
             100     0.6
             200     0.43
             300     0.5
             400     0.6
             500     0.25
             600     0.5
             700     0.5
             800     0
             900     NaN

如您所见,窗口的大小不必担心所包含的样本数量,而应考虑“公司收入”是否适合当前窗口。

我相信我可以像我之前描述的那样实现上述目标,但是还有更雄辩的方法吗?

0 个答案:

没有答案