English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Pandas 统计函数

Ejemplo de operación de funciones estadísticas de Pandas

Los métodos estadísticos ayudan a entender y analizar el comportamiento de los datos. Ahora, aprenderemos algunos funciones estadísticas que se pueden aplicar a objetos Pandas.

cambio porcentual

Series, DataFrames y Panes 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())

运行结果:

 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, pct_change() opera sobre las columnas; si se desea aplicar el mismo renglón sabiamente, utilice axis = 1()) parámetros.

covarianza

La covarianza se aplica a datos de secuencia. Los objetos de serie tienen el método cov para calcular la covarianza entre objetos de serie. NA se excluye automáticamente.

Cov Series

 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))

运行结果:

   -0.12978405324

Al aplicar el método de covarianza a DataFrame, se calculará el 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())

运行结果:

 -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

Observa el valor cov de las columnas a y b en la primera instrucción, que es el mismo que el valor devuelto por cov en DataFrame.

correlación

la correlación muestra la relación lineal entre dos arrays (secuencias) de valores. Hay varios métodos para calcular la correlación, como pearson (por defecto), 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())

运行结果:

 -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

如果DataFrame中存在任何非数字列,则会自动将其排除。

数据排名

数据排名对元素数组中的每个元素进行排名。如果是平局,则分配平均排名。

 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())

运行结果:

 a  1.0
b  3.5
c  2.0
d  3.5
e  5.0
dtype: float64

Rank可以选择将参数升序,默认情况下为true;如果为false,则对数据进行反向排名,将较大的值分配为较小的排名。

Rank支持使用method参数:

average − 并列组的平均等级。 min − 组中最低的排名。 max − 组中最高等级。 first − 行列分配在它们出现的数组中的顺序。