在熊猫中发现增长趋势[关闭]

发布于 2021-01-29 16:12:17

已关闭 。这个问题需要更加集中。它当前不接受答案。


想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。

3年前关闭。

改善这个问题

给定一组(时间序列)数据,如何以增加/减少,不稳定,不变等方式解释数据。

Year  Revenue
1993     0.85
1994     0.99
1995     1.01
1996     1.12
1997     1.25
1998     1.36
1999     1.28
2000     1.44
关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用numpy.polyfit,您可以提供订单作为拟合多项式的度。

    请参阅:numpy.polyfit文档

    import numpy as np
    import pandas as pd
    
    def trendline(data, order=1):
        coeffs = np.polyfit(data.index.values, list(data), order)
        slope = coeffs[-2]
        return float(slope)
    
    #Sample Dataframe
    revenue = [0.85, 0.99, 1.01, 1.12, 1.25, 1.36, 1.28, 1.44]
    year = [1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000]
    
    # check if values are exactly same
    if (len(set(revenue))) <= 1:
        print(0)
    else:
        df = pd.DataFrame({'year': year, 'revenue': revenue})
    
        slope = trendline(df['revenue'])
        print(slope)
    

    所以现在如果斜率的值是+ ve,趋势是增加的,如果是0,趋势是恒定的,否则是减少的

    在您给定的数据中,斜率是0.0804761904762。因此,趋势正在增加

    更新:如果值完全恒定,趋势线将失败,您可以添加自定义检查(len(set(revenue))) <= 1以进行验证,如果是,则返回0。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看