• Pandas窗口函数


    为了处理数字数据,Pandas提供了几个变体,如滚动,展开和指数移动窗口统计的权重。 其中包括总和,均值,中位数,方差,协方差,相关性等。

    下来学习如何在DataFrame对象上应用上提及的每种方法。

    .rolling()函数

    这个函数可以应用于一系列数据。指定window=n参数并在其上应用适当的统计函数。

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame(np.random.randn(10, 4),
    index = pd.date_range('1/1/2020', periods=10),
    columns = ['A', 'B', 'C', 'D'])
    
    print (df.rolling(window=3).mean())
    
    Python

    执行上面示例代码,得到以下结果 -

                       A         B         C         D
    2020-01-01       NaN       NaN       NaN       NaN
    2020-01-02       NaN       NaN       NaN       NaN
    2020-01-03 -0.306293  0.214001 -0.076004 -0.200793
    2020-01-04  0.236632 -0.437033  0.046111 -0.252062
    2020-01-05  0.761818 -0.181635 -0.546929 -0.738482
    2020-01-06  1.306498 -0.411834 -0.680948 -0.070285
    2020-01-07  0.956877 -0.749315 -0.503484  0.160620
    2020-01-08  0.354319 -1.067165 -1.238036  1.051048
    2020-01-09  0.262081 -0.898373 -1.059351  0.342291
    2020-01-10  0.326801 -0.350519 -1.064437  0.749869
    
    Shell

    注 - 由于窗口大小为3(window),前两个元素有空值,第三个元素的值将是nn-1n-2元素的平均值。这样也可以应用上面提到的各种函数了。

    .expanding()函数

    这个函数可以应用于一系列数据。 指定min_periods = n参数并在其上应用适当的统计函数。

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame(np.random.randn(10, 4),
          index = pd.date_range('1/1/2018', periods=10),
          columns = ['A', 'B', 'C', 'D'])
    print (df.expanding(min_periods=3).mean())
    
    Python

    执行上面示例代码得到以下结果 -

                       A         B         C         D
    2018-01-01       NaN       NaN       NaN       NaN
    2018-01-02       NaN       NaN       NaN       NaN
    2018-01-03 -0.425085 -0.124270 -0.324134 -0.234001
    2018-01-04 -0.293824 -0.038188 -0.172855  0.447226
    2018-01-05 -0.516146 -0.013441 -0.384935  0.379267
    2018-01-06 -0.614905  0.290308 -0.594635  0.414396
    2018-01-07 -0.606090  0.121265 -0.604148  0.246296
    2018-01-08 -0.597291  0.075374 -0.425182  0.092831
    2018-01-09 -0.380505  0.074956 -0.253081  0.146426
    2018-01-10 -0.235030  0.018936 -0.259566  0.315200
    
    Shell

    .ewm()函数

    ewm()可应用于系列数据。指定comspanhalflife参数,并在其上应用适当的统计函数。它以指数形式分配权重。

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame(np.random.randn(10, 4),
       index = pd.date_range('1/1/2019', periods=10),
       columns = ['A', 'B', 'C', 'D'])
    print (df.ewm(com=0.5).mean())
    
    Python

    执行上面示例函数,得到以下结果 -

                       A         B         C         D
    2019-01-01  1.047165  0.777385 -1.286948 -0.080564
    2019-01-02  0.484093 -0.630998 -0.975172 -0.117832
    2019-01-03  0.056189  0.830492  0.116325  1.005547
    2019-01-04 -0.363824  1.222173  0.497901 -0.235209
    2019-01-05 -0.260685  1.066029  0.391480  1.196190
    2019-01-06  0.389649  1.458152 -0.231936 -0.481003
    2019-01-07  1.071035 -0.016003  0.387420 -0.170811
    2019-01-08 -0.573686  1.052081  1.218439  0.829366
    2019-01-09  0.222927  0.556430  0.811838 -0.562096
    2019-01-10  0.224624 -1.225446  0.204961 -0.800444
    
    Shell

    窗口函数主要用于通过平滑曲线来以图形方式查找数据内的趋势。如果日常数据中有很多变化,并且有很多数据点可用,那么采样和绘图就是一种方法,应用窗口计算并在结果上绘制图形是另一种方法。 通过这些方法,可以平滑曲线或趋势。

  • 相关阅读:
    digitalpersona 开发
    Task 暂停与继续
    IQueryable 和 IEnumerable(二)
    SpringBoot Redis 订阅发布
    @Formula
    Aop 简单实例
    幂等 zuul的Filter实现
    C# async await 举个栗子
    Integer 类和 int 的区别
    TCP和UDP的区别以及各自应用
  • 原文地址:https://www.cnblogs.com/navysummer/p/9641153.html
Copyright © 2020-2023  润新知