Encontrando tendencia creciente en pandas

Dado un conjunto de datos (series de tiempo), cómo interpretar los datos de tal manera que estén aumentando / disminuyendo, no sea constante, sin cambios, etc.

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 

puede usar numpy.polyfit, puede proporcionar orden como Grado del polinomio de ajuste.

Consulte: documentación 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] df = pd.DataFrame({'year': year, 'revenue': revenue}) slope = trendline(df['revenue']) print slope 

así que ahora, si el valor de la pendiente es + ve, la tendencia aumenta, si es 0, la tendencia es constante;

En su pendiente de datos dada es 0.0804761904762. Entonces, la tendencia va en aumento.

Si ordena el dataframe por 'Year'

 df.sort_values('Year', inplace=True) 

A continuación, puede observar los atributos de pd.Series
df.Revenue.is_monotonic
df.Revenue.is_monotonic_decreasing
df.Revenue.is_monotonic_increasing