<p>通常,要计算单个列中的不同值,可以使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.value_counts.html" rel="noreferrer">^{<cd1>}</a>:</p>
<pre><code>df.domain.value_counts()
#'vk.com' 5
#'twitter.com' 2
#'facebook.com' 1
#'google.com' 1
#Name: domain, dtype: int64
</code></pre>
<p>要查看列中有多少唯一值,请使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.nunique.html" rel="noreferrer">^{<cd2>}</a>:</p>
<pre><code>df.domain.nunique()
# 4
</code></pre>
<p>要获得所有这些不同的值,可以使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.unique.html" rel="noreferrer">^{<cd3>}</a>或<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop_duplicates.html" rel="noreferrer">^{<cd4>}</a>,这两个函数之间的细微差别是<code>unique</code>返回一个<code>numpy.array</code>,而<code>drop_duplicates</code>返回一个<code>pandas.Series</code>:</p>
<pre><code>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
</code></pre>
<hr/>
<p>对于这个特定的问题,由于您希望对另一个变量计算不同的值,除了这里其他答案提供的<code>groupby</code>方法外,您还可以先删除重复项,然后再执行<code>value_counts()</code>:</p>
<pre><code>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
</code></pre>