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