Pode utilizar a seguinte sintaxe básica para calcular o desvio padrão dos valores para cada linha num DataFrame do pandas:
df. std (axis= 1 , numeric_only= True )
O argumento eixo=1 diz ao pandas para efetuar o cálculo para cada linha (em vez de cada coluna) e numeric_only=True diz ao pandas para considerar apenas colunas numéricas ao efetuar o cálculo.
O exemplo seguinte mostra como utilizar esta sintaxe na prática.
Exemplo: Calcular o desvio padrão para cada linha no Pandas
Suponha que temos o seguinte DataFrame do pandas que contém informações sobre os pontos marcados por vários jogadores de basquetebol durante quatro jogos diferentes:
import pandas as pd #create DataFrame df = pd. DataFrame ({' player ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' game1 ': [18, 22, 19, 14, 14, 11, 20, 28], ' game2 ': [5, 7, 7, 9, 12, 9, 9, 4], ' game3 ': [11, 8, 10, 6, 6, 5, 9, 12], ' game4 ': [9, 8, 8, 9, 14, 15, 10, 11]}) #view DataFrame print (df) player game1 game2 game3 game4 0 A 18 5 11 9 1 B 22 7 8 8 2 C 19 7 10 8 3 D 14 9 6 9 4 E 14 126 14 5 F 11 9 5 15 6 G 20 9 9 10 7 H 28 4 12 11
Podemos utilizar a seguinte sintaxe para calcular o desvio padrão dos pontos marcados por cada jogador:
#calcular o desvio padrão para cada linha df. std (axis= 1 , numeric_only= True ) 0 5.439056 1 7.182154 2 5.477226 3 3.316625 4 3.785939 5 4.163332 6 5.354126 7 10.144785 dtype: float64
Eis como interpretar o resultado:
- O desvio padrão dos pontos marcados pelo jogador A é 5.439 .
- O desvio padrão dos pontos marcados pelo jogador B é 7.182 .
- O desvio padrão dos pontos marcados pelo jogador C é 5.477 .
E assim por diante.
Note-se que o std() calcula o desvio padrão da amostra por defeito.
Se, em vez disso, quiser calcular o desvio padrão da população, deve utilizar o argumento ddof=0 :
#calcular o desvio padrão da população para cada linha df. std (axis= 1 , ddof= 0 , numeric_only= True ) 0 4.747351 1 5.881366 2 4.807037 3 3.384910 4 3.983518 5 3.915150 6 4.892772 7 8.091179 dtype: float64
Relacionadas: Desvio padrão da população vs. desvio padrão da amostra: quando usar cada um
Para atribuir os valores de desvio padrão a uma nova coluna, pode utilizar a seguinte sintaxe:
#adiciona uma nova coluna para apresentar o desvio padrão para cada linha df[' points_std '] = df. std (axis= 1 , numeric_only= True ) #visualiza o DataFrame atualizado print (df) player game1 game2 game3 game4 points_std 0 A 18 5 11 9 5.439056 1 B 22 7 8 8 7.182154 2 C 19 7 10 8 5.477226 3 D 14 9 6 9 3.316625 4 E 14 12 6 14 3.785939 5 F 11 9 5 15 4.163332 6 G 20 9 9 10 5.354126 7 H 28 4 12 11 10.144785
O desvio padrão dos valores para cada linha no jogo1 , jogo2 , jogo3 e jogo4 é agora mostrada nas colunas pontos_std coluna.