通常要计算单列中的不同值,您可以使用Series.value_counts
:
df.domain.value_counts()
#'vk.com' 5
#'twitter.com' 2
#'facebook.com' 1
#'google.com' 1
#Name: domain, dtype: int64
要查看一列中有多少个唯一值,请使用Series.nunique
:
df.domain.nunique()
# 4
要获得所有这些不同的值,您可以使用unique
or drop_duplicates
,这两个函数之间的细微差别是unique
return a numpy.array
whiledrop_duplicates
返回 a 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
至于这个具体问题,由于您想计算另一个变量的不同值,除了groupby
此处其他答案提供的方法外,您还可以先删除重复项,然后执行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