寻找熊猫的增长趋势

时间:2017-03-21 07:15:28

标签: python pandas

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

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

2 个答案:

答案 0 :(得分:10)

你可以使用numpy.polyfit,你可以提供顺序作为拟合多项式的度数。

参见:numpy.polyfit documentation

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]
df = pd.DataFrame({'year': year, 'revenue': revenue})


slope = trendline(df['revenue'])
print slope

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

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

答案 1 :(得分:2)

如果您按df.sort_values('Year', inplace=True)

对数据框进行排序
pd.Series

然后,您可以观察struct Base { virtual void funccall(const String e = "")=0; }; 属性
df.Revenue.is_monotonic
df.Revenue.is_monotonic_decreasing
df.Revenue.is_monotonic_increasing