Hur man filtrerar efter distinkta värden med pandas DataFrame[].unique()
I Python pandas kan du använda funktionen unique() för att identifiera unika värden i en kolumn i en DataFrame. Detta gör det enkelt att få en snabb överblick över de olika värdena i din dataset.
Vad är syntaxen för pandas DataFrame[].unique()?
Den grundläggande syntaxen för att använda pandas unique() är enkel. Detta beror på att funktionen inte tar några parametrar:
DataFrame['column_name'].unique()pythonTänk på att unique() endast kan tillämpas på en kolumn. Innan du anropar funktionen måste du ange vilken kolumn du vill utvärdera. Funktionen unique() returnerar en numpy-matris som innehåller alla olika värden i den ordning de visas, med duplicerade värden i kolumnen borttagna. Den sorterar dock inte värdena.
Om du har arbetat med Python ett tag kanske du känner till numpy-motsvarigheten till pandas unique(). Av effektivitetsskäl är pandas-versionen i allmänhet att föredra.
Hur man använder pandas DataFrame[].unique()
För att använda unique() i en pandas DataFrame måste du först ange vilken kolumn du vill kontrollera. I följande exempel använder vi en DataFrame som innehåller information om ålder och hemort för en grupp individer.
import pandas as pd
# Create a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
'Age': [24, 27, 22, 32, 29],
'City': ['Newcastle', 'London', 'Newcastle', 'Cardiff', 'London']
}
df = pd.DataFrame(data)
print(df)pythonDen resulterande DataFrame ser ut så här:
Name Age City
0 Alice 24 Newcastle
1 Bob 27 London
2 Charlie 22 Newcastle
3 David 32 Cardiff
4 Edward 29 LondonLåt oss nu säga att vi vill skapa en lista över alla städer där personerna i DataFrame bor. Vi kan tillämpa pandas unique() på kolumnen som innehåller städerna.
# Find different cities
unique_cities = df['City'].unique()
print(unique_cities)pythonResultatet är en numpy-matris som listar varje stad en gång och visar att individerna i DataFrame kommer från totalt tre städer: Newcastle, London och Cardiff.
['Newcastle' 'London' 'Cardiff']