1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
U
­ý°d.ã@sBddlmZddlmZddlZddlZddlZddlmZm    Z    m
Z
ddl m Z ddlmZddlmZe    ej d¡eddd    d
Zd d „Zd d„Zdd„Zdd„Zej de je je jdd„g¡dd„ƒZdd„Zdd„Z ejj!dddd„ƒZ"ej d d!idfd!d"didfd!d"d#iej#fd$id#fd$d"did#fd$d"d#iej#fg¡d%d&„ƒZ$ej d'd(ej#fd)ej#fd*d+d,g¡d-d.„ƒZ%d/d0„Z&d1d2„Z'ej d3d!id#dd#gfd!d"did#dd#gfd!d"d#id#ej#d#gfd!d"d4iej#ej#ej#gfd$id#d#d#gfd$d"did#d#d#gfd$d"d#id#ej#d#gfd$d"d4iej#ej#ej#gfg¡d5d6„ƒZ(d7d8„Z)dS)9é)Údatetime)Ú methodcallerN)Ú    DataFrameÚSeriesÚ    Timestamp)ÚGrouper)Ú
date_rangeéèz1/1/2000©Úperiods©ÚindexcCsjtdddd}t |¡}dd„}| |¡}t dd„¡ |¡}|j d¡|_|j d¡|_t ||¡dS)    NÚAÚright©ÚfreqÚlabelÚclosedcSs| ¡dd…S)Néýÿÿÿ)Z sort_values©Úx©rú^d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/resample/test_time_grouper.pyÚfsztest_apply.<locals>.fcSs|jS©N©ÚyearrrrrÚ<lambda>óztest_apply.<locals>.<lambda>r)rÚ test_seriesÚgroupbyÚapplyr Z    droplevelÚtmÚassert_series_equal)ÚgrouperÚgroupedrZappliedÚexpectedrrrÚ
test_applys
 
r'cCsxtjtddd…<t dd„¡ ¡}tdddd}t |¡ ¡}|j|_t ||¡t     d¡ ¡}|j|_t ||¡dS)NécSs|jSrrrrrrr'rztest_count.<locals>.<lambda>rrr)
ÚnpÚnanrr Úcountrr r"r#Úresample)r&r$ÚresultrrrÚ
test_count$s r.cCs@tjddd ¡}t dd„¡ tj¡}|j|_t ||¡dS)Nrr)rcSs|jSrrrrrrr6rz&test_numpy_reduction.<locals>.<lambda>)    rr,Úprodr Zaggr)r r"r#©r-r&rrrÚtest_numpy_reduction3sr1c    Cspd}tdd|d}tdddœ|d}td    d
}| |¡\}}|j|d d }d d„}| |¡}t |j|j¡dS)Nr    ú
2000-01-01ÚD)Ústartrr éé)ÚopenÚcloser ÚM©rF)Z
group_keyscSs|d|dS)Nr8r7r)ÚdfrrrrHsztest_apply_iteration.<locals>.f)    rrrZ _get_grouperr r!r"Zassert_index_equalr )    ÚNÚindr;Útgr$Ú_r%rr-rrrÚtest_apply_iteration<s
 
r@ÚfunccCs t |d¡S)Nr6)r"ZmakeCustomIndex)ÚmrrrrVrrc    Cshd}||ƒ}t|ƒj}tdtj |¡i|d}d|›d}tjt|d|     t
dd¡W5QRXdS)    Nr6Úar zVOnly valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'ú')Úmatchr3r:) ÚtypeÚ__name__rr)ÚrandomÚrandnÚpytestZraisesÚ    TypeErrorr r)rAÚnr Únamer;ÚmsgrrrÚtest_fails_on_no_datetime_indexPs
 
 
ÿrOcCs.d}tj |d¡}t|ddddgd}tdd    d    ƒtdd    d
ƒtdd    d ƒtdd    dƒtdd    d ƒgd|d <| td dd¡}t |     tdd    d    ƒ¡|ddd …¡t |     tdd    d
ƒ¡|d    dd …¡t |     tdd    d ƒ¡|d
dd …¡t |     tdd    dƒ¡|d dd …¡t |     tdd    d ƒ¡|ddd …¡dS)NéérÚBÚCr3©ÚcolumnséÝr5r6r(éÚkey©rXr)
r)rHrIrrr rr"Úassert_frame_equalZ    get_group)rLÚdatar;r%rrrÚtest_aaa_group_ordergs"
 
 
 
 
ûú$$$$r\cCsàtj dd¡}t|ddddgd}dd    d
dd gd|d <t|ddddgd}td ddƒtd dd    ƒtd dd
ƒtd ddƒtd dd ƒgd|d <| d ¡}| td dd¡}t||ƒƒ}t||ƒƒ}tddd d d|_    t
  ||¡dS©z?Check TimeGrouper's aggregation is identical as normal groupby.rPrQrrRrSr3rTr5r6r(rWrXrVrYú
2013-01-01©r4rr rMN) r)rHrIrrr rÚgetattrrr r"Z assert_equal)Zresample_methodr[Ú    normal_dfÚdt_dfÚnormal_groupedÚ
dt_groupedr&Ú    dt_resultrrrÚtest_aggregate_normal}s$
 
 
 
 
ûú
  rfz7if TimeGrouper is used included, 'nth' doesn't work yet)ÚreasoncCsÜtj dd¡}t|ddddgd}dd    d
dd gd|d <t|ddddgd}td ddƒtd dd    ƒtd dd
ƒtd ddƒtd dd ƒgd|d <| d ¡}| td dd¡}| d
¡}tddd d d|_    | d
¡}t
  ||¡dSr]) r)rHrIrrr rZnthrr r"rZ)r[rarbrcrdr&rerrrÚtest_aggregate_nth–s$
 
 
 
 
ûú
 
 
rhzmethod, method_args, unitÚsumZ    min_countr5r/cCsjtdgdtjgdtdddd}t|f|Ž| d¡ƒ}td|gtjd    d
gd d d}t     ||¡dS) Nrr6Ú2017rQr
r Z2dgz
2017-01-01z
2017-01-03Z2Dr:)
rr)r*rrr,ÚpdÚ DatetimeIndexr"r#)ÚmethodÚ method_argsÚunitÚsr-r&rrrÚ!test_resample_entirely_nat_window°s &ÿrqzfunc, fill_valueÚminÚmax)rir)r/r5)r+rc Cs8d}tj |d¡ d¡}t|ddddgd}d    d
tjdd gd|d <t|ddddgd}td d    d    ƒtd d    d
ƒtjtd d    dƒtd d    d ƒgd|d <|     d ¡}|     t
d dd¡}t ||ƒƒ}t ||ƒƒ}    t|gdgdgddddgd}
t  ||
g¡} |   ¡} tddd d d} |  d¡| _t | |    ¡|    jjd ks4t‚dS)NrPrQÚint64rrRrSr3rTr5r6rWrXrVrYr()r rUr^r_)r)rHrIÚastyperr*rrkÚNaTr rr`ÚconcatÚ
sort_indexrÚ
_with_freqr r"rZrMÚAssertionError) rAZ
fill_valuerLr[rarbrcrdÚ normal_resultreÚpadr&ZdtirrrÚtest_aggregate_with_natÄs0    
 
 
 
ûú
     r}c
Csd}tj |d¡ d¡}t|ddddgd}d    d
tjdd gd|d <t|ddddgd}td d    d    ƒtd d    d
ƒtjtd d    dƒtd d    d ƒgd|d <|     d ¡}|     t
d dd¡}|  ¡}|  ¡}t dgdgd}t  ||g¡}    |     ¡}    tddd d d d¡|    _t |    |¡|jjd kst‚dS)NrPrQrtrrRrSr3rTr5r6rWrXrVrYrr(r r^r_)r)rHrIrurr*rrkrvr rÚsizerrwrxrryr r"r#rMrz)
rLr[rarbrcrdr{rer|r&rrrÚtest_aggregate_with_nat_sizeês<
 
 
 
ûú
ÿþ rcCsFttdddƒ}d}||ks t‚ttddddƒ}d}||ksBt‚dS)NrÚHrYzŽTimeGrouper(key='A', freq=<Hour>, axis=0, sort=True, dropna=True, closed='left', label='left', how='mean', convention='e', origin='start_day')r2)rXrÚoriginz£TimeGrouper(key='A', freq=<Hour>, axis=0, sort=True, dropna=True, closed='left', label='left', how='mean', convention='e', origin=Timestamp('2000-01-01 00:00:00')))Úreprrrzr0rrrÚ    test_repr
sÿ ÿrƒz$method, method_args, expected_valuesr6cCs`tdtddddd}| d¡}tjdd    d
gdd }t|f|Ž|ƒ}t||d}t ||¡dS) Nr5rjr6r€©r rr Z30Tz2017-01-01T00:00:00z2017-01-01T00:30:00z2017-01-01T01:00:00r:)rrr,rkrlrr"r#)rmrnZexpected_valuesrpZ    resampledr r-r&rrrÚtest_upsample_sums
þ r…cCsPdddgdddgdœ}t|ƒ}tddd    d
|d <| d ¡ d ¡ d ¡jdd}tjjdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfdt    dƒfgd d gd}td d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/gd0gd1dgdœ|d2}t
  ||¡dS)3Né
é é    é2é<)ZpriceÚvolumez
01/01/2018r(ÚWr„Z week_startingr‹Z1DZlinear)rmz
2018-01-07z
2018-01-08z
2018-01-09z
2018-01-10z
2018-01-11z
2018-01-12z
2018-01-13z
2018-01-14z
2018-01-15z
2018-01-16z
2018-01-17z
2018-01-18z
2018-01-19z
2018-01-20z
2018-01-21)Únamesg$@g·mÛ¶mÛ#@gnÛ¶mÛ¶#@g%I’$I’#@gÛ¶mÛ¶m#@g’$I’$I#@gI’$I’$#@g#@g·mÛ¶mÛ"@gnÛ¶mÛ¶"@g%I’$I’"@gÛ¶mÛ¶m"@g’$I’$I"@gI’$I’$"@g"@g&@gI@é)r[r ) rrZ    set_indexr r,Z interpolaterkZ
MultiIndexÚ from_tuplesrr"rZ)Údr;r-Z expected_indr&rrrÚ!test_groupby_resample_interpolate6sl
ÿþýÿ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ðíðíêr‘)*rÚoperatorrÚnumpyr)rJZpandasrkrrrZpandas._testingZ_testingr"Zpandas.core.groupby.grouperrZpandas.core.indexes.datetimesrrHrIrr'r.r1r@ÚmarkZ parametrizeZ makeIntIndexZmakeStringIndexZmakeFloatIndexrOr\rfZxfailrhr*rqr}rrƒr…r‘rrrrÚ<module>st         üþ    
 
  úþ
    þ
" øþ