예제 #1
0
    def test_qcut_include_lowest(self):
        values = np.arange(10)

        cats = qcut(values, 4)

        ex_levels = ["[0, 2.25]", "(2.25, 4.5]", "(4.5, 6.75]", "(6.75, 9]"]
        self.assert_((cats.levels == ex_levels).all())
예제 #2
0
    def test_qcut_include_lowest(self):
        values = np.arange(10)

        cats = qcut(values, 4)

        ex_levels = ['[0, 2.25]', '(2.25, 4.5]', '(4.5, 6.75]', '(6.75, 9]']
        self.assertTrue((cats.categories == ex_levels).all())
예제 #3
0
    def test_qcut_include_lowest(self):
        values = np.arange(10)

        cats = qcut(values, 4)

        ex_levels = ['[0, 2.25]', '(2.25, 4.5]', '(4.5, 6.75]', '(6.75, 9]']
        self.assertTrue((cats.categories == ex_levels).all())
예제 #4
0
파일: test_tile.py 프로젝트: yz3007/pandas
 def test_qcut_return_categorical(self):
     s = Series([0, 1, 2, 3, 4, 5, 6, 7, 8])
     res = qcut(s, [0, 0.333, 0.666, 1])
     exp = Series(Categorical.from_codes([0, 0, 0, 1, 1, 1, 2, 2, 2],
                                         ["[0, 2.664]",
                                          "(2.664, 5.328]", "(5.328, 8]"],
                                         ordered=True))
     tm.assert_series_equal(res, exp)
예제 #5
0
    def test_qcut(self):
        arr = np.random.randn(1000)

        labels, bins = qcut(arr, 4, retbins=True)
        ex_bins = quantile(arr, [0, .25, .5, .75, 1.])
        tm.assert_almost_equal(bins, ex_bins)

        ex_levels = cut(arr, ex_bins, include_lowest=True)
        self.assert_categorical_equal(labels, ex_levels)
예제 #6
0
    def test_qcut(self):
        arr = np.random.randn(1000)

        labels, bins = qcut(arr, 4, retbins=True)
        ex_bins = quantile(arr, [0, 0.25, 0.5, 0.75, 1.0])
        assert_almost_equal(bins, ex_bins)

        ex_levels = cut(arr, ex_bins, include_lowest=True)
        self.assert_(np.array_equal(labels, ex_levels))
예제 #7
0
    def test_qcut(self):
        arr = np.random.randn(1000)

        labels, bins = qcut(arr, 4, retbins=True)
        ex_bins = quantile(arr, [0, .25, .5, .75, 1.])
        tm.assert_almost_equal(bins, ex_bins)

        ex_levels = cut(arr, ex_bins, include_lowest=True)
        self.assert_categorical_equal(labels, ex_levels)
예제 #8
0
    def test_qcut(self):
        arr = np.random.randn(1000)

        labels, bins = qcut(arr, 4, retbins=True)
        ex_bins = quantile(arr, [0, .25, .5, .75, 1.])
        ex_bins[0] -= (arr.max() - arr.min()) * 0.001
        assert_almost_equal(bins, ex_bins)

        ex_levels = cut(arr, ex_bins)
        self.assert_(np.array_equal(labels, ex_levels))
예제 #9
0
    def test_series_retbins(self):
        # GH 8589
        s = Series(np.arange(4))
        result, bins = cut(s, 2, retbins=True)
        tm.assert_numpy_array_equal(result.cat.codes.values, [0, 0, 1, 1])
        tm.assert_almost_equal(bins, [-0.003, 1.5, 3])

        result, bins = qcut(s, 2, retbins=True)
        tm.assert_numpy_array_equal(result.cat.codes.values, [0, 0, 1, 1])
        tm.assert_almost_equal(bins, [0, 1.5, 3])
예제 #10
0
    def test_qcut(self):
        arr = np.random.randn(1000)

        labels, bins = qcut(arr, 4, retbins=True)
        ex_bins = quantile(arr, [0, .25, .5, .75, 1.])
        ex_bins[0] -= (arr.max() - arr.min()) * 0.001
        assert_almost_equal(bins, ex_bins)

        ex_levels = cut(arr, ex_bins)
        self.assert_(np.array_equal(labels, ex_levels))
예제 #11
0
파일: test_tile.py 프로젝트: elina0/AI-1
    def test_series_retbins(self):
        # GH 8589
        s = Series(np.arange(4))
        result, bins = cut(s, 2, retbins=True)
        assert_equal(result.cat.codes.values, [0, 0, 1, 1])
        assert_almost_equal(bins, [-0.003, 1.5, 3])

        result, bins = qcut(s, 2, retbins=True)
        assert_equal(result.cat.codes.values, [0, 0, 1, 1])
        assert_almost_equal(bins, [0, 1.5, 3])
예제 #12
0
    def test_series_retbins(self):
        # GH 8589
        s = Series(np.arange(4))
        result, bins = cut(s, 2, retbins=True)
        tm.assert_numpy_array_equal(result.cat.codes.values,
                                    np.array([0, 0, 1, 1], dtype=np.int8))
        tm.assert_numpy_array_equal(bins, np.array([-0.003, 1.5, 3]))

        result, bins = qcut(s, 2, retbins=True)
        tm.assert_numpy_array_equal(result.cat.codes.values,
                                    np.array([0, 0, 1, 1], dtype=np.int8))
        tm.assert_numpy_array_equal(bins, np.array([0, 1.5, 3]))
예제 #13
0
    def test_qcut_duplicates_bin(self):
        # GH 7751
        values = [0, 0, 0, 0, 1, 2, 3]
        result_levels = ['[0, 1]', '(1, 3]']

        cats = qcut(values, 3, duplicates='drop')
        self.assertTrue((cats.categories == result_levels).all())

        self.assertRaises(ValueError, qcut, values, 3)
        self.assertRaises(ValueError, qcut, values, 3, duplicates='raise')

        # invalid
        self.assertRaises(ValueError, qcut, values, 3, duplicates='foo')
예제 #14
0
    def test_qcut_duplicates_bin(self):
        # GH 7751
        values = [0, 0, 0, 0, 1, 2, 3]
        result_levels = ['[0, 1]', '(1, 3]']

        cats = qcut(values, 3, duplicates='drop')
        self.assertTrue((cats.categories == result_levels).all())

        self.assertRaises(ValueError, qcut, values, 3)
        self.assertRaises(ValueError, qcut, values, 3, duplicates='raise')

        # invalid
        self.assertRaises(ValueError, qcut, values, 3, duplicates='foo')
예제 #15
0
    def test_qcut_binning_issues(self):
        # #1978, 1979
        path = os.path.join(tm.get_data_path(), 'cut_data.csv')
        arr = np.loadtxt(path)

        result = qcut(arr, 20)

        starts = []
        ends = []
        for lev in result.categories:
            s, e = lev[1:-1].split(',')

            self.assertTrue(s != e)

            starts.append(float(s))
            ends.append(float(e))

        for (sp, sn), (ep, en) in zip(zip(starts[:-1], starts[1:]),
                                      zip(ends[:-1], ends[1:])):
            self.assertTrue(sp < sn)
            self.assertTrue(ep < en)
            self.assertTrue(ep <= sn)
예제 #16
0
    def test_qcut_binning_issues(self):
        # #1978, 1979
        path = os.path.join(tm.get_data_path(), 'cut_data.csv')
        arr = np.loadtxt(path)

        result = qcut(arr, 20)

        starts = []
        ends = []
        for lev in result.categories:
            s, e = lev[1:-1].split(',')

            self.assertTrue(s != e)

            starts.append(float(s))
            ends.append(float(e))

        for (sp, sn), (ep, en) in zip(zip(starts[:-1], starts[1:]),
                                      zip(ends[:-1], ends[1:])):
            self.assertTrue(sp < sn)
            self.assertTrue(ep < en)
            self.assertTrue(ep <= sn)
예제 #17
0
    def test_qcut_nas(self):
        arr = np.random.randn(100)
        arr[:20] = np.nan

        result = qcut(arr, 4)
        self.assertTrue(com.isnull(result[:20]).all())
예제 #18
0
    def test_qcut_bounds(self):
        np.random.seed(12345)
        arr = np.random.randn(1000)

        factor = qcut(arr, 10, labels=False)
        self.assert_(len(np.unique(factor)) == 10)
예제 #19
0
    def test_qcut_specify_quantiles(self):
        arr = np.random.randn(100)

        factor = qcut(arr, [0, .25, .5, .75, 1.])
        expected = qcut(arr, 4)
        tm.assert_categorical_equal(factor, expected)
예제 #20
0
    def test_qcut_bounds(self):
        arr = np.random.randn(1000)

        factor = qcut(arr, 10, labels=False)
        self.assertEqual(len(np.unique(factor)), 10)
예제 #21
0
파일: test_tile.py 프로젝트: manova/pandas
    def test_qcut_bounds(self):
        np.random.seed(12345)
        arr = np.random.randn(1000)

        factor = qcut(arr, 10, labels=False)
        self.assert_(len(np.unique(factor)) == 10)
예제 #22
0
    def test_single_quantile(self):
        # issue 15431
        expected = Series([0, 0])

        s = Series([9., 9.])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(Categorical.from_codes([0, 0], ["[9, 9]"],
                                                ordered=True))
        tm.assert_series_equal(result, exp_lab)

        s = Series([-9., -9.])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(Categorical.from_codes([0, 0], ["[-9, -9]"],
                                                ordered=True))
        tm.assert_series_equal(result, exp_lab)

        s = Series([0., 0.])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(Categorical.from_codes([0, 0], ["[0, 0]"],
                                                ordered=True))
        tm.assert_series_equal(result, exp_lab)

        expected = Series([0])

        s = Series([9])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(Categorical.from_codes([0], ["[9, 9]"],
                                                ordered=True))
        tm.assert_series_equal(result, exp_lab)

        s = Series([-9])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(Categorical.from_codes([0], ["[-9, -9]"],
                                                ordered=True))
        tm.assert_series_equal(result, exp_lab)

        s = Series([0])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(Categorical.from_codes([0], ["[0, 0]"],
                                                ordered=True))
        tm.assert_series_equal(result, exp_lab)
예제 #23
0
    def test_qcut_specify_quantiles(self):
        arr = np.random.randn(100)

        factor = qcut(arr, [0, .25, .5, .75, 1.])
        expected = qcut(arr, 4)
        self.assert_(factor.equals(expected))
예제 #24
0
    def test_qcut_specify_quantiles(self):
        arr = np.random.randn(100)

        factor = qcut(arr, [0, .25, .5, .75, 1.])
        expected = qcut(arr, 4)
        tm.assert_categorical_equal(factor, expected)
예제 #25
0
    def test_qcut_bounds(self):
        arr = np.random.randn(1000)

        factor = qcut(arr, 10, labels=False)
        self.assertEqual(len(np.unique(factor)), 10)
예제 #26
0
    def test_qcut_specify_quantiles(self):
        arr = np.random.randn(100)

        factor = qcut(arr, [0, .25, .5, .75, 1.])
        expected = qcut(arr, 4)
        self.assert_(factor.equals(expected))
예제 #27
0
    def test_single_quantile(self):
        # issue 15431
        expected = Series([0, 0])

        s = Series([9., 9.])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(
            Categorical.from_codes([0, 0], ["[9, 9]"], ordered=True))
        tm.assert_series_equal(result, exp_lab)

        s = Series([-9., -9.])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(
            Categorical.from_codes([0, 0], ["[-9, -9]"], ordered=True))
        tm.assert_series_equal(result, exp_lab)

        s = Series([0., 0.])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(
            Categorical.from_codes([0, 0], ["[0, 0]"], ordered=True))
        tm.assert_series_equal(result, exp_lab)

        expected = Series([0])

        s = Series([9])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(Categorical.from_codes([0], ["[9, 9]"], ordered=True))
        tm.assert_series_equal(result, exp_lab)

        s = Series([-9])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(
            Categorical.from_codes([0], ["[-9, -9]"], ordered=True))
        tm.assert_series_equal(result, exp_lab)

        s = Series([0])
        result = qcut(s, 1, labels=False)
        tm.assert_series_equal(result, expected)
        result = qcut(s, 1)
        exp_lab = Series(Categorical.from_codes([0], ["[0, 0]"], ordered=True))
        tm.assert_series_equal(result, exp_lab)
예제 #28
0
    def test_qcut_nas(self):
        arr = np.random.randn(100)
        arr[:20] = np.nan

        result = qcut(arr, 4)
        self.assertTrue(com.isnull(result[:20]).all())