Ottieni valori unici Pandas in colonna e ordinali

Manav Narula 26 aprile 2021
  1. Ottieni valori univoci nella colonna DataFrame di Pandas con il metodo unique
  2. Ottieni valori univoci nella colonna DataFrame di Pandas con il metodo drop_duplicates
  3. Ordina una colonna in Pandas DataFrame
Ottieni valori unici Pandas in colonna e ordinali

Questo articolo introdurrà come ottenere valori univoci nella colonna DataFrame di Pandas.

Ad esempio, supponiamo di avere un DataFrame composto da individui e le loro professioni e di voler conoscere il numero totale di professioni. In tal caso, non possiamo semplicemente utilizzare il conteggio totale delle righe per determinare il totale delle professioni uniche perché molte persone possono svolgere lo stesso lavoro. Per tali situazioni, possiamo usare le funzioni unique() e drop_duplicates() fornite dalla libreria Pandas.

È anche importante sapere come ordinare il tuo DataFrame poiché può aiutare a visualizzare e comprendere i dati. Le funzioni sort() e sort_values() possono aiutare a raggiungere questo obiettivo.

Ordineremo e rimuoveremo il seguente DataFrame in questo tutorial.

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})

print(df)

Produzione:

   A  B
0  7  1
1  1  2
2  5  8
3  4  5
4  2  3
5  1  4
6  4  2
7  4  6
8  8  8

Ottieni valori univoci nella colonna DataFrame di Pandas con il metodo unique

Il metodo unique() della serie Pandas viene utilizzato quando si tratta di una singola colonna di un DataFrame e restituisce tutti gli elementi univoci di una colonna. L’output finale che utilizza la funzione unique() è un array.

Esempio:

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})

print(df["A"].unique())
print(type(df["A"].unique()))

Produzione:

[7 1 5 4 2 8]
numpy.ndarray

Ottieni valori univoci nella colonna DataFrame di Pandas con il metodo drop_duplicates

drop_duplicates() può essere applicato a DataFrame o al suo sottoinsieme e conserva il tipo di oggetto DataFrame. È anche considerata un’opzione più veloce quando si tratta di enormi set di dati per rimuovere i valori duplicati.

Esempio:

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})

print(df.drop_duplicates(subset="A"))
print(type(df.drop_duplicates(subset="A")))

Produzione:

   A  B
0  7  1
1  1  2
2  5  8
3  4  5
4  2  3
8  8  8
pandas.core.frame.DataFrame

Ordina una colonna in Pandas DataFrame

Possiamo usare il metodo sorted() per ordinare una colonna, ma converte il risultato finale in un oggetto di tipo lista. Possiamo anche ordinare i valori delle colonne in ordine decrescente mettendo il parametro reversed come True.

L’esempio seguente ordina la colonna in ordine crescente e rimuove i valori duplicati:

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})

df_new = df.drop_duplicates(subset="A")

print(sorted(df_new["A"]))
print(type(sorted(df_new["A"])))

Produzione:

[1, 2, 4, 5, 7, 8]
list

sort_values() è un’altra opzione flessibile per ordinare un DataFrame. Qui possiamo specificare la colonna da ordinare usando il parametro by e se l’ordine è crescente o decrescente usando il parametro ascending. Conserva il tipo di oggetto come Pandas DataFrame.

L’esempio seguente ordina la colonna in ordine decrescente e rimuove i valori duplicati:

import pandas as pd
import numpy as np

df = pd.DataFrame({"A": [7, 1, 5, 4, 2, 1, 4, 4, 8], "B": [1, 2, 8, 5, 3, 4, 2, 6, 8]})

df_new = df.drop_duplicates(subset="A")

print(df_new.sort_values(by="A", ascending=False))
type(df_new.sort_values(by="A"))

Produzione:

   A  B
8  8  8
0  7  1
2  5  8
3  4  5
4  2  3
1  1  2
pandas.core.frame.DataFrame
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Articolo correlato - Pandas DataFrame