Classificação da série Pandas

Classificação da série Pandas
Neste post, veremos diferentes maneiras de classificar uma série de pandas. Abra python no terminal usando o comando Pitão. Uma vez que o terminal abrir Python, importe pandas nele. Pandas é a biblioteca Python que contém o objeto da série. $ python
Python 2.7.18 (padrão, 8 de março de 2021, 13:02:45)
[GCC 9.3.0] no Linux2
Digite "ajuda", "direitos autorais", "créditos" ou "licença" para obter mais informações.
>>> Importar pandas como PD

Uma série de pandas é uma matriz unidimensional com rótulos de eixo (índices). Os rótulos não precisam ser únicos, mas devem ser hashable. O objeto da série permite ao usuário armazenar uma coleção de tipos semelhantes de variáveis. Ele pode armazenar qualquer tipo de dados - inteiro, flutuação, objetos, etc. Um objeto de série pode ser classificado de várias maneiras usando parâmetros diferentes em sua chamada. Uma série pode ser inicializada usando o comando Pd.Series. Por padrão, os pandas classificam o objeto da série em ordem crescente.

>>> s = pd.Série ([6, 3, 8, 2, 9])
>>> s.Sort_Values ​​()
3 2
1 3
0 6
2 8
4 9
DTYPE: INT64

A classificação dos valores em ordem decrescente pode ser alcançada usando o parâmetro ascendente. Definindo ascendente para Falso, A série pode ser classificada em ordem decrescente.

>>> s.Sort_values ​​(Ascendente = Falso)
4 9
2 8
0 6
1 3
3 2
DTYPE: INT64

Por padrão, a chamada para Sort_values Retorna uma cópia do objeto da série. Para conjuntos de dados de tamanho grande, isso é inviável, pois resulta na geração de uma nova cópia dos dados. Para evitar isso, a operação de classificação pode ser realizada no local usando o no lugar palavra -chave. Atribuindo no lugar como Verdadeiro, faz com que o objeto da série classifique no local sem ocupar espaço adicional.

>>> s.Sort_Values ​​(Ascendente = Falso, Inplace = True)
>>> s
4 9
2 8
0 6
1 3
3 2
DTYPE: INT64

No caso acima, observe que nenhuma cópia adicional dos dados é retornada.

Os pandas permitem que o usuário escolha o algoritmo de classificação para executar a operação de classificação. Pode -se definir o algoritmo de classificação usando o tipo parâmetro. O tipo O parâmetro leva um dos seguintes valores como argumentos: Quicksort, Mergesort, Heapsort. Por padrão, o algoritmo do Quicksort é usado para classificar os valores.

>>> s.Sort_Values ​​(Kind = 'Quicksort')
3 2
1 3
0 6
2 8
4 9
DTYPE: INT64

Às vezes, um objeto de série contém N / D valores. Os valores de NA são os valores que estão faltando no objeto da série. Os valores de NA podem ser colocados no início da matriz ou no último da matriz. A posição pode ser atribuída usando o parâmetro Na_Position.

>>> s = pd.Série ([6, 3, 8, NP.nan, 2, 9])
>>> s.Sort_Values ​​(Na_Position = 'Last')
4 2.0
1 3.0
0 6.0
2 8.0
5 9.0
3 Nan
DTYPE: Float64

O N / D Os valores também podem ser descartados antes de classificar. Isso pode ser alcançado usando o comando Dropna.

>>> s = pd.Série ([6, 3, 8, NP.nan, 2, 9])
>>> s.Dropna ().Sort_Values ​​(Na_Position = 'Last')
4 2.0
1 3.0
0 6.0
2 8.0
5 9.0
DTYPE: Float64

Durante o tipo, observamos que o índice permanece o mesmo para a nova matriz classificada. O índice pode ser ignorado usando o parâmetro ignore_index. É preciso um valor de bool: Verdadeiro ou Falso. Se Verdadeiro, O índice é ignorado na saída. Por padrão, é Falso.

>>> s.Sort_Values ​​(ignore_index = true, Na_Position = 'First')
0 nan
1 2.0
2 3.0
3 6.0
4 8.0
5 9.0
DTYPE: Float64

Às vezes é conveniente usar uma função chave para classificar os valores. Nesses casos, pode -se passar explicitamente a função principal usando o chave parâmetro. Para classificar usando o chave função, a função principal é aplicada aos valores da série antes de classificar. Considere o exemplo abaixo, que não usa chave parâmetros.

>>> s = pd.Série (dados = ['a', 'b', 'c', 'd']))
>>> s.Sort_Values ​​()
1 b
3 d
0 a
2 c
dtype: objeto

A série acima pode ser classificada usando chave parâmetro da seguinte forma.

>>> s.Sort_values ​​(key = lambda x: x.str.mais baixo())
0 a
1 b
2 c
3 d
dtype: objeto

Em vez de uma função lambda, Numpy funções também podem ser usadas como chave funções. Na função abaixo, a ordem classificada é avaliada usando o NP.função sin que calcula o seno valor e usa -o como uma chave de classificação.

>>> importar numpy como np
>>> s = pd.Série ([1, 2, 3, 4, 5])
>>> s.Sort_values ​​(key = np.pecado)
4 5
3 4
2 3
0 1
1 2
DTYPE: INT64

Um objeto de série também pode ser classificado pelo valor do índice. Considere o exemplo abaixo. Para classificar por índice, ligue para Sort_index.

>>> s = pd.Série (dados = [1, 2, 3, 4], index = ['d', 'b', 'c', 'a']))
>>> s.sort_index ()
A 4
B 2
C 3
D 1
DTYPE: INT64

A classificação por um índice é a mesma de todas as maneiras que a classificação por valores, incluindo os parâmetros, exceto que opera no índice, em vez dos dados.