Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas,在不同时间间隔的多个滚动统计数据上的性能_Python_Pandas_Stream - Fatal编程技术网

Python Pandas,在不同时间间隔的多个滚动统计数据上的性能

Python Pandas,在不同时间间隔的多个滚动统计数据上的性能,python,pandas,stream,Python,Pandas,Stream,我是新来的熊猫,想知道如何最好地使用有时间限制的滑动窗口和滚动统计计算。我在不同的时间窗口(1小时、4小时、1天、1周…)内处理具有不同滚动数据计算(加权平均值、平均值、总和、最大值、最旧值…)的连续数据流,也按不同的项目ID分组 为每个项目生成一个输出流,其中包含其自己的滚动统计信息,但也包含来自类似项目的统计信息(数据链接到最近的可变时间跨度和以前标识的类似项目) 我目前创建了一个自定义代码,没有使用pandas,这是由于速度的巨大提高:仅使用差分计算计算滚动统计数据(即计算新数据和从滑动窗

我是新来的熊猫,想知道如何最好地使用有时间限制的滑动窗口和滚动统计计算。我在不同的时间窗口(1小时、4小时、1天、1周…)内处理具有不同滚动数据计算(加权平均值、平均值、总和、最大值、最旧值…)的连续数据流,也按不同的项目ID分组

为每个项目生成一个输出流,其中包含其自己的滚动统计信息,但也包含来自类似项目的统计信息(数据链接到最近的可变时间跨度和以前标识的类似项目)

我目前创建了一个自定义代码,没有使用pandas,这是由于速度的巨大提高:仅使用差分计算计算滚动统计数据(即计算新数据和从滑动窗口丢弃的数据的差异),链接流中发生的类似项的可变时间跨度。我想换成熊猫,但想确定预期的表现

有没有办法与熊猫取得类似(或更好)的表现?然后:

  • pandas是计算所有滑动窗口值的每个滚动统计数据,还是对新/旧值进行差异计算?那么,在为滚动统计创建“自定义函数”时,我是否也可以进行差分计算以避免重新处理所有值的巨大成本

  • 在多个时间窗口上声明多个滚动统计信息的最有效方法是什么?如果我还想按每个项目对其进行分组,我假设我应该添加类似“my_stream.groupby(item_key)”的内容,这样是否仍然有效

  • 输出:对于每个项目,我输出自己的滚动统计数据和类似项目的统计数据,但时间跨度是可变的(从10mn到40mn)。我如何才能仅使用最接近的“旧”时间戳链接其他项目的每个项目行(我的意思是:如果项目1的时间是02:00,而项目2的数据是02:01和01:50,我应该链接01:50的数据)?它会极大地影响性能吗

  • 我试图创建一个快速的插图,但不是很容易:

    输入:

     Item   | Price | Date          
    ------- | ----- | --------------
    1       | 10    | 2014 01:01:01 
    2       | 20    | 2014 01:01:02 
    1       | 20    | 2014 01:21:00 
    1       | 20    | 2014 01:31:01 
    
    输出:

     Item   | Date  | Price | Mean1hr   | Mean4hr   | Mean24hr  | Sum1hr    | Sum4hr    | Sum24hr | SimilarMean1hr | SimilarMean4hr | Similar24hr |     
     -------|------|--------|-------|-------------|-----------|-------|--------|-------|----------|----------|--------|     
     1  | 2014 01:21:00 | 15    | 8 | 3 | 30    | 30    | 35    | 16    | 14    | 10 | 
    
    非常感谢,
    泽维尔

    这是一个相当广泛的问题。你必须展示一些样品和你想要的东西。滚动统计数据不是在线的(例如增量)。我想你已经给出了答案:如果滚动统计数据不能是增量的,我怀疑我能否达到类似的性能,因为每个数据都是根据所有值计算的(即,在我的情况下,对于一个月的滞后数据,每次几乎有3000个值)。好的,熊猫的速度非常快,因为所有这些代码都在cython中。所以你应该试一试。(我的2c是因为语法非常强大和通用,即使在某些情况下它的速度较慢,好处也是值得的。)那么你对问题2和3有什么提示或例子吗?我试着把数据样本,很多东西放在文档里阅读