8
8
from pandas .core .indexes .datetimes import Timestamp
9
9
import pandas .util .testing as tm
10
10
11
- from .common import TestData
12
11
12
+ class TestSeriesQuantile :
13
+ def test_quantile (self , datetime_series ):
13
14
14
- class TestSeriesQuantile ( TestData ):
15
- def test_quantile ( self ):
15
+ q = datetime_series . quantile ( 0.1 )
16
+ assert q == np . percentile ( datetime_series . dropna (), 10 )
16
17
17
- q = self .ts .quantile (0.1 )
18
- assert q == np .percentile (self .ts .dropna (), 10 )
19
-
20
- q = self .ts .quantile (0.9 )
21
- assert q == np .percentile (self .ts .dropna (), 90 )
18
+ q = datetime_series .quantile (0.9 )
19
+ assert q == np .percentile (datetime_series .dropna (), 90 )
22
20
23
21
# object dtype
24
- q = Series (self . ts , dtype = object ).quantile (0.9 )
25
- assert q == np .percentile (self . ts .dropna (), 90 )
22
+ q = Series (datetime_series , dtype = object ).quantile (0.9 )
23
+ assert q == np .percentile (datetime_series .dropna (), 90 )
26
24
27
25
# datetime64[ns] dtype
28
- dts = self . ts .index .to_series ()
26
+ dts = datetime_series .index .to_series ()
29
27
q = dts .quantile (0.2 )
30
28
assert q == Timestamp ("2000-01-10 19:12:00" )
31
29
@@ -41,20 +39,23 @@ def test_quantile(self):
41
39
msg = "percentiles should all be in the interval \\ [0, 1\\ ]"
42
40
for invalid in [- 1 , 2 , [0.5 , - 1 ], [0.5 , 2 ]]:
43
41
with pytest .raises (ValueError , match = msg ):
44
- self . ts .quantile (invalid )
42
+ datetime_series .quantile (invalid )
45
43
46
- def test_quantile_multi (self ):
44
+ def test_quantile_multi (self , datetime_series ):
47
45
48
46
qs = [0.1 , 0.9 ]
49
- result = self . ts .quantile (qs )
47
+ result = datetime_series .quantile (qs )
50
48
expected = pd .Series (
51
- [np .percentile (self .ts .dropna (), 10 ), np .percentile (self .ts .dropna (), 90 )],
49
+ [
50
+ np .percentile (datetime_series .dropna (), 10 ),
51
+ np .percentile (datetime_series .dropna (), 90 ),
52
+ ],
52
53
index = qs ,
53
- name = self . ts .name ,
54
+ name = datetime_series .name ,
54
55
)
55
56
tm .assert_series_equal (result , expected )
56
57
57
- dts = self . ts .index .to_series ()
58
+ dts = datetime_series .index .to_series ()
58
59
dts .name = "xxx"
59
60
result = dts .quantile ((0.2 , 0.2 ))
60
61
expected = Series (
@@ -64,18 +65,20 @@ def test_quantile_multi(self):
64
65
)
65
66
tm .assert_series_equal (result , expected )
66
67
67
- result = self .ts .quantile ([])
68
- expected = pd .Series ([], name = self .ts .name , index = Index ([], dtype = float ))
68
+ result = datetime_series .quantile ([])
69
+ expected = pd .Series (
70
+ [], name = datetime_series .name , index = Index ([], dtype = float )
71
+ )
69
72
tm .assert_series_equal (result , expected )
70
73
71
- def test_quantile_interpolation (self ):
74
+ def test_quantile_interpolation (self , datetime_series ):
72
75
# see gh-10174
73
76
74
77
# interpolation = linear (default case)
75
- q = self . ts .quantile (0.1 , interpolation = "linear" )
76
- assert q == np .percentile (self . ts .dropna (), 10 )
77
- q1 = self . ts .quantile (0.1 )
78
- assert q1 == np .percentile (self . ts .dropna (), 10 )
78
+ q = datetime_series .quantile (0.1 , interpolation = "linear" )
79
+ assert q == np .percentile (datetime_series .dropna (), 10 )
80
+ q1 = datetime_series .quantile (0.1 )
81
+ assert q1 == np .percentile (datetime_series .dropna (), 10 )
79
82
80
83
# test with and without interpolation keyword
81
84
assert q == q1
0 commit comments