zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
U
­ý°dÏ-ã@sÆdZddlZddlZddlmZmZddlZddlm    Z    m
Z
m Z m Z m Z mZmZddlmZej ddddd    d
d ejd ej d ¡gddddg
¡dd„ƒZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zej d d ejfd ejfd    ej fdej!fdej"fdej#fdej$fd!d"d#„fd$d%d#„fg    ¡d&d'„ƒZ%ej d d ejfd d(d#„fd    d)d#„fdej#fdej$fg¡d*d+„ƒZ&d,d-„Z'ej d.d!d$ddg¡ej d/ed0ƒe d1ƒg¡d2d3„ƒƒZ(ej d4dddddd    d d d5d6d7d8d9d:d;d!d$d<d=d>g¡d?d@„ƒZ)ej ddddd    d
d d dddg
¡dAdB„ƒZ*ej dCdDdEg¡ej dFdGdHdIdJdKdLdMdNdOg    ¡ej d/ej+dPdQdRdSgdTdUej+dPdQdRdSgdVdUej+dWdXdYdZgd[dUej+dWdXdYdZgd\dUej+dDdDdEdEgd]dUg¡d^d_„ƒƒƒZ,dS)`z
test cython .agg behavior
éN)Úis_float_dtypeÚis_integer_dtype)Ú    DataFrameÚIndexÚNaTÚSeriesÚ    TimedeltaÚ    TimestampÚ bdate_rangeÚop_nameÚcountÚsumZstdÚvarZsemÚmeanÚmedianzignore::RuntimeWarning)ZmarksÚprodÚminÚmaxc
s8ddddddddddtjtjg ddgdtj d¡dœ}t|ƒ}tj|jd    d
d    …d f<‡fd d „‰|jdgdd d¡}‡fdd„|Dƒ}td |iƒ}d|j_    ˆ|ƒ}t
  ||¡| ddg¡}i}|D]$\\}}}    ˆ|    d ƒ|  |i¡|<qÈt|ƒj jdd}ddg|j_d |_    ˆ|ƒd }ˆdkr4t
 ||¡dS)Nrégð?ÚAÚBéé )rrÚCéé
rcs t|ˆƒƒS©N)Úgetattr©Úx)r ©úad:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/groupby/aggregate/test_cython.pyÚ<lambda>7óz(test_cythonized_aggers.<locals>.<lambda>)Úaxiscsi|]\}}|ˆ|dƒ“qS)rr )Ú.0ÚcatÚgroup)Úopr r!Ú
<dictcomp>;sz*test_cythonized_aggers.<locals>.<dictcomp>F)Zdropna)r r)ÚnpÚnanÚrandomÚrandnrÚlocZdropÚgroupbyÚindexÚnameÚtmÚassert_frame_equalÚ
setdefaultÚTÚstackÚnamesÚassert_series_equal)
r ÚdataÚdfÚgroupedÚexpÚresultZexpdZcat1Zcat2r'r )r(r r!Útest_cythonized_aggerss.
 
ý     
r>cCsdttj ddd¡tj ddd¡ d¡dœƒ}| d¡d ¡}| d¡d tj¡}t     ||¡dS)    Nréé2rÚbool©ÚaÚbrCrD)
rr*r,ÚrandintÚastyper/rÚaggr2r8)Úframer=Úexpectedr r r!Útest_cython_agg_booleanOsþÿrJc    Cs¾ttj ddd¡ddgddœƒ}d}tjt|d    | d
¡d jd d W5QRXttj ddd¡ddgddœƒ}|d g |d
¡jd d }tg|d
     ¡ 
¡gd}t   ||¡dS)Nrr?r@ÚfooÚbarérBúKCannot use numeric_only=True with SeriesGroupBy.mean and non-numeric dtypes©ÚmatchrCrDT©Ú numeric_only)r0Úcolumns) rr*r,rEÚpytestÚraisesÚ    TypeErrorr/rZ sort_valuesZdrop_duplicatesr2r3)rHÚmsgr=rIr r r!Útest_cython_agg_nothing_to_agg\s" "ÿrXc    Csfttj ddd¡ddgdtjdddd    d
œƒ}d }tjt|d |     d ¡j
j ddW5QRXdS)Nrr?r@rKrLrMÚnowr5)ÚperiodsÚfreq)rCrDÚdatesrNrOrDTrQ) rr*r,rEÚpdZ
date_rangerTrUrVr/r\r)rHrWr r r!Ú)test_cython_agg_nothing_to_agg_with_datesls
ýÿr^cCsftdddgdddgdœƒ}|jddd     ¡|jddd     ¡|jddd     ¡|jddd     ¡dS)
Nrréér?)rÚyrrS)Úlevelr$)rr/r)r:r r r!Útest_cython_agg_frame_columnsys
rcc
Cs˜tddddddddgddddddddgtj d¡tj d¡dœƒ}| d¡d     d
d „¡}td d d d œddd d œgtddgddd    d}t     ||¡dS)NrKrLÚoneÚtwoÚthreeé)rrrÚDrrcSs | ¡ ¡Sr)Z value_countsÚto_dictrr r r!r"Žr#z-test_cython_agg_return_dict.<locals>.<lambda>r)rerdrfr©r1)r0r1)
rr*r,r-r/rGrrr2r8)r:ÚtsrIr r r!Útest_cython_agg_return_dictƒs
 
üÿ    ýrlcCsXtddd}tdddddgd    |d
}| d d „¡}| ¡}| tj¡}t ||¡dS) Nz1/1/2000r@)rZrrrrhÚEr©r0cSs|jSr)Úmonthrr r r!r"›r#z&test_cython_fail_agg.<locals>.<lambda>)r
rr/r rGr*r2r8)Zdrrkr;ZsummedrIr r r!Útest_cython_fail_agg—s   rpz
op, targopÚfirstcCs
|jdS©Nr©Zilocrr r r!r"«r#r"ÚlastcCs
|jdS)Néÿÿÿÿrsrr r r!r"¬r#cCs^ttj d¡ƒ}tjjdddd t¡}| |¡j|ddd}| |¡     |¡}t
  ||¡dS)Nièrr@)ÚsizeT©ZaltrR) rr*r,r-rErFÚfloatr/Ú_cython_agg_generalrGr2r3)r(Útargopr:Úlabelsr=rIr r r!Útest__cython_agg_general¡s
r|cCst|ƒdkrt |¡StjSrr)Úlenr*rr+rr r r!r"¼r#cCstj|ddS)Nr)Zddof)r*rrr r r!r"½r#cs€tdddgƒ}tdddƒ}|jt |d|¡|d}|j|ddd    }|jt |d|¡|d}| ‡fd
d „¡}t ||¡dS) Né ré ré7r?©ÚobservedTrwcsˆ|ƒSrr r©rzr r!r"Ìr#z/test_cython_agg_empty_buckets.<locals>.<lambda>)    rÚranger/r]ÚcutryrGr2r3)r(rzr‚r:ÚgrpsÚgr=rIr rƒr!Útest_cython_agg_empty_buckets¸s  rˆcCs tdddgdgd}tjdddtjd    }|jt |d|¡|d
jd dd d }tjdddd}tdddddgitj    |dd dd}|r”||j
dk}t   ||¡|jt |d|¡|d
jddd d }tdddddgitj    |dd dd}|rü||j
dk}t   ||¡dS)Nr~rrrC)rSrrMr?©Údtyperr Trwé)r[é$)r1Zorderedrnrri´) rr*ZarangeÚint_r/r]r…ryZinterval_rangeZCategoricalIndexrCr2r3)r‚r:r†r=Z    intervalsrIr r r!Ú$test_cython_agg_empty_buckets_nanopsÐs6ÿþ ÿþrŽr(r9z2016-10-14 21:00:44.557z17088 days 21:00:44.557cCsZtddg|tgdœƒ}tddgdd}td|tgi|d}| d¡ |¡}t ||¡dS)NrrrBrCrjrDrn)rrrr/Ú    aggregater2r3)r(r9r:r0rIr=r r r!Ú"test_cython_with_timestamp_and_natñs
rrGZohlcZcumprodZcumsumÚshiftÚanyÚallZquantileZrankZcumminZcummaxcCsrtdddddgdddddgdœƒ}d|jjd    j_| d
g¡ d |i¡}| ¡ d
g¡ d |i¡}t     ||¡dS) Ngffffff@gš™™™™™@gÍÌÌÌÌÌ@gffffff@g@Zsetosa)Ú sepal_lengthÚspeciesFrr•r”)
rZ_mgrZarraysÚflagsZ    writeabler/rGÚcopyr2Z assert_equal)rGr:r=rIr r r!Ú test_read_only_buffer_source_aggs  þÿr˜c Csštddgdtjddddddd    d
d tjg
d d dœƒ}t| d¡d|ƒƒ}|j|d d¡d}t| d¡d|ƒƒ}|dkrŠ| d¡}t     ||¡dS)Nrrr?rrr_r`rérgé    ÚInt64r‰)rrÚfloat64)rr )
rr]ÚarrayÚNArr/ZassignrFr2r8)r r:r=Zdf2rIr r r!Útest_cython_agg_nullable_int*s
"þÿ
rŸÚwith_naTFzop_name, action)r Ú    large_int)rÚ always_float)rr¢)rr¢)rr¡)rÚpreserve)rr£)rqr£)rtr£rrr_r`r›r‰ZInt8gš™™™™™¹?gš™™™™™É?g333333Ó?gš™™™™™Ù?ZFloat32ZFloat64ÚbooleancCs$|rtj|d<tddddg|dœƒ}| d¡}|dkr@t ¡}nh|dkrvt|jƒrZ|j}q¨t|jƒrl|j}q¨t ¡}n2|dkršt|jƒr|j}q¨t ¡}n|d    kr¨|j}t    ||ƒƒ}|d
j|ksÆt
‚|  |¡}|d
j|ksât
‚t    |d
|ƒƒ}|j|kst
‚|d
  |¡}|j|ks t
‚dS) Nr_rCrD)ÚkeyÚcolr¥Z
always_intr¡r¢r£r¦) r]ržrr/Z
Int64DtyperrŠrZ Float64DtyperÚAssertionErrorr)r9r Úactionr r:r;Zexpected_dtyper=r r r!Útest_cython_agg_EA_known_dtypesMs4
 
 
 
 
 
 
 
 
r©)-Ú__doc__Únumpyr*rTZpandas.core.dtypes.commonrrZpandasr]rrrrrr    r
Zpandas._testingZ_testingr2ÚmarkZ parametrizeÚparamÚfilterwarningsr>rJrXr^rcrlrprrrr rrrr|rˆrŽrr˜rŸrr©r r r r!Ú<module>sú$      üñþ
!  
 
 
 
÷þ
    
 
ûþ
 
!ÿ ìþ
öþ
ôþûþ