Généralement pour compter les valeurs distinctes dans une seule colonne, vous pouvez utiliser Series.value_counts
:
df.domain.value_counts()
#'vk.com' 5
#'twitter.com' 2
#'facebook.com' 1
#'google.com' 1
#Name: domain, dtype: int64
Pour voir combien de valeurs uniques dans une colonne, utilisez Series.nunique
:
df.domain.nunique()
# 4
Pour obtenir toutes ces valeurs distinctes, vous pouvez utiliser unique
ou drop_duplicates
, la légère différence entre les deux fonctions est que unique
renvoie un numpy.array
tandis que drop_duplicates
renvoie un pandas.Series
:
df.domain.unique()
# array(["'vk.com'", "'twitter.com'", "'facebook.com'", "'google.com'"], dtype=object)
df.domain.drop_duplicates()
#0 'vk.com'
#2 'twitter.com'
#4 'facebook.com'
#6 'google.com'
#Name: domain, dtype: object
Quant à ce problème spécifique, puisque vous souhaitez compter une valeur distincte par rapport à une autre variable, en plus de la méthode groupby
fournie par d'autres réponses ici, vous pouvez également simplement supprimer les doublons d'abord et ensuite utiliser value_counts()
:
import pandas as pd
df.drop_duplicates().domain.value_counts()
# 'vk.com' 3
# 'twitter.com' 2
# 'facebook.com' 1
# 'google.com' 1
# Name: domain, dtype: int64