给定一组(时间序列)数据,如何以增加/减少,不稳定,不变等方式解释数据。
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 :(得分: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