Python Pandas - Funciones estadísticas
Los métodos estadísticos ayudan a comprender y analizar el comportamiento de los datos. Ahora aprenderemos algunas funciones estadísticas, que podemos aplicar en objetos Pandas.
Cambio porcentual
Series, DatFrames y Panel, todos tienen la función pct_change(). Esta función compara cada elemento con su elemento anterior y calcula el porcentaje de cambio.
import pandas as pd
import numpy as np
s = pd.Series([1,2,3,4,5,4])
print s.pct_change()
df = pd.DataFrame(np.random.randn(5, 2))
print df.pct_change()
Sus output es como sigue -
0 NaN
1 1.000000
2 0.500000
3 0.333333
4 0.250000
5 -0.200000
dtype: float64
0 1
0 NaN NaN
1 -15.151902 0.174730
2 -0.746374 -1.449088
3 -3.582229 -3.165836
4 15.601150 -1.860434
Por defecto, el pct_change()opera en columnas; si desea aplicar la misma fila, utiliceaxis=1() argumento.
Covarianza
La covarianza se aplica a los datos de la serie. El objeto Serie tiene un método cov para calcular la covarianza entre objetos en serie. NA se excluirá automáticamente.
Serie Cov
import pandas as pd
import numpy as np
s1 = pd.Series(np.random.randn(10))
s2 = pd.Series(np.random.randn(10))
print s1.cov(s2)
Sus output es como sigue -
-0.12978405324
El método de covarianza cuando se aplica en un DataFrame, calcula cov entre todas las columnas.
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print frame['a'].cov(frame['b'])
print frame.cov()
Sus output es como sigue -
-0.58312921152741437
a b c d e
a 1.780628 -0.583129 -0.185575 0.003679 -0.136558
b -0.583129 1.297011 0.136530 -0.523719 0.251064
c -0.185575 0.136530 0.915227 -0.053881 -0.058926
d 0.003679 -0.523719 -0.053881 1.521426 -0.487694
e -0.136558 0.251064 -0.058926 -0.487694 0.960761
Note - Observe el cov Entre a y b columna en la primera declaración y el mismo es el valor devuelto por cov en DataFrame.
Correlación
La correlación muestra la relación lineal entre dos matrices de valores (series). Hay varios métodos para calcular la correlación, como pearson (predeterminado), spearman y kendall.
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print frame['a'].corr(frame['b'])
print frame.corr()
Sus output es como sigue -
-0.383712785514
a b c d e
a 1.000000 -0.383713 -0.145368 0.002235 -0.104405
b -0.383713 1.000000 0.125311 -0.372821 0.224908
c -0.145368 0.125311 1.000000 -0.045661 -0.062840
d 0.002235 -0.372821 -0.045661 1.000000 -0.403380
e -0.104405 0.224908 -0.062840 -0.403380 1.000000
Si alguna columna no numérica está presente en el DataFrame, se excluye automáticamente.
Clasificación de datos
Clasificación de datos produce una clasificación para cada elemento en la matriz de elementos. En caso de empates, asigna el rango medio.
import pandas as pd
import numpy as np
s = pd.Series(np.random.np.random.randn(5), index=list('abcde'))
s['d'] = s['b'] # so there's a tie
print s.rank()
Sus output es como sigue -
a 1.0
b 3.5
c 2.0
d 3.5
e 5.0
dtype: float64
El rango toma opcionalmente un parámetro ascendente que por defecto es verdadero; cuando es falso, los datos se clasifican de forma inversa, y los valores más grandes asignan una clasificación más pequeña.
Rank admite diferentes métodos de desempate, especificados con el parámetro de método -
average - rango promedio del grupo empatado
min - rango más bajo en el grupo
max - rango más alto en el grupo
first - rangos asignados en el orden en que aparecen en la matriz