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
U
¬ý°dõã @sÖddlZddlZddlmZmZmZddlmZ    ddl
m Z ddl m Z dd„Zdd„Zej d    ejgd
gfejejgd d
gfe ejg¡d
gfe ejejg¡d d
gfg¡d d „ƒZej dge g¡g¡dd„ƒZej deeg¡dd„ƒZdd„Zej didgigddœdgdœgdgdœdggdœg¡dd„ƒZej dddg¡dd„ƒZd d!d"d#d$d%gZd&d'„e DƒZej d(ed)d*„f•¡d+d,„ƒZej d(e¡d-d.„ƒZd/d0„Z ej dddg¡d1d2„ƒZ!d3d4„Z"dS)5éN)Ú    DataFrameÚ
MultiIndexÚSeries)Úframe_transform_kernels)Ú
zip_framescCs,|tk    r(|d}|dkr(t d|›¡|S)zm
    Helper to ensure we have the right type of object for a test parametrized
    over frame_or_series.
    ÚArz%Test is only for DataFrame with axis=)rÚpytestÚskip)ÚobjÚklassÚaxis©r ú^d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/apply/test_frame_transform.pyÚ
unpack_objs
rc    CsRt|||ƒ}tjddt |¡}W5QRX|jtj|d}|}t ||¡dS)NÚignore©Úall©r )rÚnpÚerrstateÚsqrtÚ    transformÚtmÚ assert_equal)r Ú float_frameÚframe_or_seriesr
Zf_sqrtÚresultÚexpectedr r rÚtest_transform_ufuncs  rz
ops, namesrÚabsolutec    sŽ|dkr dnd}tjdd t‡fdd„|Dƒ|d}W5QRX|dkr^t ˆj|g¡|_nt ˆj|g¡|_ˆj||d}t     ||¡dS)    N>rÚindexérrrcsg|] }|ˆƒ‘qSr r )Ú.0Úop©rr rÚ
<listcomp>4sz+test_transform_listlike.<locals>.<listcomp>r)
rrrrZ from_productÚcolumnsr rrÚassert_frame_equal)r rÚopsÚnamesZ
other_axisrrr r$rÚtest_transform_listlike's $r*r(c    Cs4t||dƒ}tjtdd| |¡W5QRXdS©Nrz$No transform functions were provided©Úmatch©rrÚraisesÚ
ValueErrorr©rr(rr
r r rÚtest_transform_empty_listlike=s r2ÚboxcCsl|dkr&|jd}||g tj¡}n|jd}|jdg tj¡}|j||tjiƒ|d}t ||¡dS)N)rr rr)r&rrÚabsr Zilocrr')r rr3Úerrr r rÚtest_transform_dictlikeEs
 
r6cCsjtddgddgddgdœƒ}| ddgddœ¡}tdddgd    dd    ggtdd
gd d gƒd }t ||¡dS)Nr!éé)ÚaÚbÚcrr4)r:r;gð?g@)rr4)rrr!)rr!r©r&)rrrrr')Údfrrr r rÚtest_transform_dictlike_mixedRsþr>rZcumsum©rÚBc    Cs4t||dƒ}tjtdd| |¡W5QRXdSr+r.r1r r rÚtest_transform_empty_dictlike]s rAÚ    use_applyTFcs@t|ˆ|ƒ}‡‡fdd„}|j||d}|d}t ||¡dS)Ncsˆt|ˆƒkrt‚|dS©Nr!)Ú
isinstancer0©Úx©rrBr rÚfuncusz test_transform_udf.<locals>.funcrr!)rrrr)r rrBrr
rHrrr rGrÚtest_transform_udfos
 rIZffillZbfillZfillnaÚpadZbackfillÚshiftcCsg|]}|tkr|‘qSr )Ú    wont_fail)r"rFr r rr%‚sr%r#cCs|dSrCr rEr r rÚ<lambda>…órMc    Csð|dkr |j tjjtdd¡tddtgiƒ}t     ||¡}t
}d  ddg¡}tj ||d    |  |¡W5QRXtj ||d    |  |g¡W5QRXtj ||d    |  d|i¡W5QRXtj ||d    |  d|gi¡W5QRXdS)
NÚngroupúngroup not valid for NDFrame©r/Úreasonréú|ú4not supported between instances of 'type' and 'type'úunsupported operand typer,)ÚnodeÚ
add_markerrÚmarkÚxfailr0rÚobjectrÚget_objÚ    TypeErrorÚjoinr/r)r#rÚrequestr
ÚerrorÚmsgr r rÚtest_transform_bad_dtype…s(ÿ þÿrbc    Csþ|dkr |j tjjtdd¡tdtgdddgdœƒ}t}d     d    d
g¡}tj
||d |  |g¡W5QRXtj
||d |  ||dœ¡W5QRXtj
||d |  |g|gdœ¡W5QRXtj
||d |  |d g|gdœ¡W5QRXdS) NrOrPrQrSr!r7r?rTrUrVr,rK) rWrXrrYrZr0rr[r]r^r/r)r_r#r=r`rar r rÚ test_transform_failure_typeerror¡s&ÿþÿrcc    CsØdd„}tdddgdddgd    œƒ}d
}tjt|d | |g¡W5QRXtjt|d | ||d    œ¡W5QRXtjt|d | |g|gd    œ¡W5QRXtjt|d | |d g|gd    œ¡W5QRXdS) NcSst t |¡¡dkrt‚|S©Né
)rÚsumr0rEr r rr#Ãsz-test_transform_failure_valueerror.<locals>.opr!r7rSiiôiXr?zTransform function failedr,rK)rrr/r0r)r#r=rar r rÚ!test_transform_failure_valueerrorÁsrgcs@ddg‰ddi‰‡‡‡‡fdd„}ˆdgƒj|dfˆžˆŽdS)Nr!r7r;rScs6ˆt|ˆƒkrt‚||gˆks"t‚|ˆdks2t‚|S)Nr;)rDr0ÚAssertionError)rFr9r:r;©Z expected_argsZexpected_kwargsrrBr rÚfßs
z%test_transform_passes_args.<locals>.fr)r)rBrrjr rirÚtest_transform_passes_argsØs    rkcCsPtgddgd}| dd„¡}t ||¡|d dd„¡}t ||d¡dS)NZcol1Zcol2r<cSs|dSrdr rEr r rrMîrNz0test_transform_empty_dataframe.<locals>.<lambda>cSs|dSrdr rEr r rrMñrN)rrrr'Zassert_series_equal)r=rr r rÚtest_transform_empty_dataframeës
 rl)#ÚnumpyrrZpandasrrrZpandas._testingZ_testingrZpandas.tests.apply.commonrZpandas.tests.frame.commonrrrrYZ parametrizerr4Úarrayr*r2Údictr6r>rArIrLZframe_kernels_raiserbrcrgrkrlr r r rÚ<module>sX      üþ    
 
 
 
 
úþ