Skip to content

Commit a1f7e5b

Browse files
committed
ENH: add nunique function to count unique elements, GH #297
1 parent 81ef580 commit a1f7e5b

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

pandas/core/series.py

+10
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,16 @@ def value_counts(self):
627627
counter[value] += 1
628628
return Series(counter).order(ascending=False)
629629

630+
def nunique(self):
631+
"""
632+
Return count of unique elements in the Series
633+
634+
Returns
635+
-------
636+
nunique : int
637+
"""
638+
return len(self.value_counts())
639+
630640
def sum(self, axis=0, dtype=None, out=None, skipna=True, level=None):
631641
if level is not None:
632642
return self._agg_by_level('sum', level=level, skipna=skipna)

pandas/tests/test_series.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -900,12 +900,14 @@ def test_count(self):
900900

901901
self.assertEqual(self.ts.count(), np.isfinite(self.ts).sum())
902902

903-
def test_value_counts(self):
903+
def test_value_counts_nunique(self):
904904
s = Series(['a', 'b', 'b', 'b', 'b', 'a', 'c', 'd', 'd', 'a'])
905905
hist = s.value_counts()
906906
expected = Series([4, 3, 2, 1], index=['b', 'a', 'd', 'c'])
907907
assert_series_equal(hist, expected)
908908

909+
self.assertEquals(s.nunique(), 4)
910+
909911
# handle NA's properly
910912
s[5:7] = np.nan
911913
hist = s.value_counts()

0 commit comments

Comments
 (0)