相关疑难解决方法(0)

pandas基于值而不是计数使用窗口滚动计算

我正在寻找一种方法来做类似各种rolling_*函数的方法pandas,但我希望滚动计算的窗口由一系列值(比如,DataFrame的一列值的值)定义,而不是窗口中的行数.

举个例子,假设我有这些数据:

>>> print d
   RollBasis  ToRoll
0          1       1
1          1       4
2          1      -5
3          2       2
4          3      -4
5          5      -2
6          8       0
7         10     -13
8         12      -2
9         13      -5
Run Code Online (Sandbox Code Playgroud)

如果我做了类似的事情rolling_sum(d, 5),我得到一个滚动的总和,其中每个窗口包含5行.但我想要的是滚动总和,其中每个窗口包含一定范围的值RollBasis.也就是说,我希望能够做类似的事情d.roll_by(sum, 'RollBasis', 5),并得到一个结果,其中第一个窗口包含RollBasis1到5之间的所有行,然后第二个窗口包含所有RollBasis在2到6之间的行,然后是第三个window包含RollBasis3到7之间的所有行,等等.窗口的行数不会相等,但RollBasis每个窗口中选择的值范围将相同.所以输出应该是这样的:

>>> d.roll_by(sum, 'RollBasis', 5)
    1    -4    # sum of elements with 1 <= Rollbasis <= 5
    2    -4    # sum of …
Run Code Online (Sandbox Code Playgroud)

python pandas

21
推荐指数
3
解决办法
2万
查看次数

如何获得熊猫过去几个月的移动平均值

我有一个数据集,第一列是Date,Second列是Price.交易日是交易日.

在此输入图像描述

我想返回一个如下所示的表:

在此输入图像描述

如果日期是从2006年开始的每个月,价格MA是过去N个月的平均价格.(N = [1,2,3,4,5,6])

例如:如果我想在2006年1月1日N = 1 Ma应该是去年12月的平均价格如果N = 2 Ma应该是去年11月和12月的平均价格

我已经阅读了一些关于从datetime和groupby提取月份的解决方案.但不知道如何将它们组合在一起.

python datetime pandas

8
推荐指数
2
解决办法
5077
查看次数

标签 统计

pandas ×2

python ×2

datetime ×1