@@ -11253,6 +11253,34 @@ def test_count(self):
11253
11253
expected = Series(0, index=[])
11254
11254
assert_series_equal(result, expected)
11255
11255
11256
+ def test_value_counts(self):
11257
+ df = DataFrame({"A": [0, 5, 8, 10, 13], "B": [4, 16, 2, 30, 10]})
11258
+ expected = DataFrame({"A": pd.Series([1, 1, 1, 1, 1],
11259
+ index=[0, 5, 8, 10, 13]),
11260
+ "B": pd.Series([1, 1, 1, 1, 1],
11261
+ index=[4, 16, 2, 30, 10])})
11262
+ expected = expected.reindex([10, 30, 16, 13, 8, 5, 4, 2, 0])
11263
+ assert_frame_equal(df.value_counts(), expected)
11264
+ # levels = Index(['(-0.03, 3]', '(3, 6]', '(6, 9]', '(9, 12]',
11265
+ # '(12, 15]', '(15, 18]', '(18, 21]', '(21, 24]',
11266
+ # '(24, 27]', '(27, 30]'], dtype=object)
11267
+ bins = [-0.03, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
11268
+ actual = df.value_counts(bins=10)
11269
+ expected = DataFrame({"A": pd.cut(df["A"],
11270
+ bins=bins).describe()['counts'], "B":
11271
+ pd.cut(df["B"], bins=bins).describe()['counts']})
11272
+ expected = expected.sort(expected.sum(1))
11273
+ assert_frame_equal(actual, expected)
11274
+ df = DataFrame({"A": ['a', 'a', 'a', 'c', 'd', 'e'],
11275
+ "B": ['e', 'c', 'd', 'x', 'y', 'a']})
11276
+ actual = df.value_counts()
11277
+ expected = DataFrame({"A": Series([3, 1, 1, 1], index=['a', 'e', 'd',
11278
+ 'c']),
11279
+ "B": Series([1, 1, 1, 1, 1, 1],
11280
+ index=['e', 'c', 'd', 'x', 'y',
11281
+ 'a'])})
11282
+ assert_frame_equal(actual, expected)
11283
+
11256
11284
def test_sum(self):
11257
11285
self._check_stat_op('sum', np.sum, has_numeric_only=True)
11258
11286
0 commit comments