zmc
2023-10-12 ed135d79df12a2466b52dae1a82326941211dcc9
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
U
­ý°dh[ã@sÎddlZddlZddlmZddlmZddlZddl    m
Z ddl m Z ej ddddgddggd    d
gd    d gd    d gd œfdddgdejgddggd    dd
gd    dd gd    dd gd œfg¡dd„ƒZej ddddgddggdd
gdd gdd gd œfdddgdejgddgejdggddd
d gddd d gdd    d d gd œfg¡dd„ƒZej ddddgd
d    gd d    gd d    gdœfdddejgd
d    dgd d    dgd d    dgdœfg¡dd„ƒZej dddddejgejddgddgd fddddejgejdddgddejgd fg¡d!d"„ƒZej d#dejd$d%gddgd&d'fdejd$d%d(gddejgd&d'fg¡d)d*„ƒZej d+d,¡d-d.„ƒZej d/e dd0¡ed1ƒejjd2d3gd4d5gd6g¡d7d8„ƒZej ddddgddggd    d
gdd gd d gd œfdddgdejgddggd    dd
gddd gd dd gd œfg¡d9d:„ƒZejjej d;e d<¡e d=¡fe  d>¡e  d?¡fe !d<¡e !d=¡fg¡ej d@ddAdgfddAddBgfg¡dCdD„ƒƒƒZ"ej dEej#ddddejgdFdFdGdHgdIœdJddKddgiddejgdLdMej#ddddejgdFdFdGdHgdIœdJddKdgiddNdMej#dddddOgdFdFdGdHgdIœdJddKddgiddPdMej#dddddOgdFdFdGdHgdIœdJddKddgiddQdMg¡dRdS„ƒZ$ej dTddgddgg¡ej dUdgddgg¡ej dVddg¡dWdX„ƒƒƒZ%dYdZ„Z&d[d\„Z'ej d]e(d^ƒ¡ej d_dd`dadbdcdddedfdgdhdgdidjdkej#dlejj)edmdndodpdqdrg¡ej dsddg¡dtdu„ƒƒƒZ*ej dsddg¡ej d_e+dg¡dvdw„ƒƒZ,ej dxdydzd{g¡d|d}„ƒZ-d~d„Z.ej d€dd‚g¡dƒd„„ƒZ/d…d†„Z0d‡dˆ„Z1dS)‰éN)Úpa_version_under7p0)Úna_value_for_dtype)Úget_groupby_method_argszdropna, tuples, outputsTÚAÚBg*@ç…ëQ¸Î^@gÀ^@çð?©ÚcÚdÚeF皙™™™™(@ç m@g(@c    Cs®dddddgd|dddgdddddgddddd    gg}tj|d
d d d dgd}|jd
d g|d ¡}tjj|tdƒd}|s|jddtj    gd d}tj||d}t
  ||¡dS)Nrré r rré{érÚaÚbr
r r ©Úcolumns©ÚdropnaÚab©Únames©Úlevel©Úindex© ÚpdÚ    DataFrameÚgroupbyÚsumÚ
MultiIndexÚ from_tuplesÚlistÚ
set_levelsÚnpÚnanÚtmÚassert_frame_equal)    rÚtuplesÚoutputsÚ nulls_fixtureÚdf_listÚdfÚgroupedÚmiÚexpected©r4ú_d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/groupby/test_groupby_dropna.pyÚ:test_groupby_dropna_multi_index_dataframe_nan_in_one_group s    ür6gš™™™™™*@g@m@c
    CsÂdddddgd|dddgdddddg|dddd    gd|ddd    gg}tj|d
d d d dgd}|jd
d g|d ¡}tjj|tdƒd}|s¤| ddtj    gddtj    gg¡}tj||d}    t
  ||    ¡dS)Nrrrr rrrrrrrr
r r rrrrrr)
rr,r-r.Únulls_fixture2r/r0r1r2r3r4r4r5Ú;test_groupby_dropna_multi_index_dataframe_nan_in_two_groups8s     ûr8zdropna, idx, outputs)rr
r cCs~ddddgddddgddddgdddd    gg}tj|d
d d d gd}|jd
|d ¡}tj|tj|dd
dd}t ||¡dS)Nrrr rrrrrrrrr
r rrÚobject©ÚdtypeÚnamer)r r!r"r#ÚIndexr*r+)rÚidxr-r/r0r1r3r4r4r5Ú*test_groupby_dropna_normal_index_dataframeds
 
 
 
ür?zdropna, idx, expectedrrércCs8tjddddg|d}|jd|d ¡}t ||¡dS)Nrér@rr)rr)r ÚSeriesr"r#r*Úassert_series_equal)rr>r3ÚserÚresultr4r4r5Ú test_groupby_dropna_series_levelƒs rFzdropna, expectedg@j@çàu@ú    Max Speed©rr<ç4@cCsLtjddddgddddgdd}|jd    d
d    tjg|d  ¡}t ||¡dS) Ng`x@rGg>@rJZFalconZParrotrHrIrrr)r rBr"r(r)Zmeanr*rC)rr3rDrEr4r4r5Útest_groupby_dropna_series_by•s 
 
ýrKr)FTcCsBt ddddgddddgdœ¡}|jd|d}|jj|ks>t‚dS)NrrrAr@©rrrr)r r!r"ZgrouperrÚAssertionError)rr0Úgbr4r4r5Útest_grouper_dropna_propagationªs rOréZabcd)rrA)ÚRrÚnumÚcolrcCsÌdddd|rtjndgi}tjddddgddddgdœ|d}|jd|d    }| t¡}tj||d}t ||¡|dg t¡}tj||d}t ||¡|d t¡}tj    |d|dd
}t 
||¡dS) NrrArrr@rLrrrrI) r(r)r r!r"Ú    transformÚlenr*r+rBrC)rrZ expected_datar0rNrEr3r4r4r5Ú+test_groupby_dataframe_slice_then_transform²s
$
  rVc    Cs¼dddddgdddddgdddddgddddd    gg}tj|d
d d d dgd}ttddœ}|jd
d g|d |¡}tjj|tdƒd}|sž|j    ddt
j gd d}tj||d}t   ||¡dS)Nrrrr rrrrrrrr
r r rÚminr    rrrrr)r r!r#Úmaxr"Úaggr$r%r&r'r(r)r*r+)    rr,r-r/r0Zagg_dictr1r2r3r4r4r5Ú-test_groupby_dropna_multi_index_dataframe_aggÎs    ü rZzdatetime1, datetime2z
2020-01-01z
2020-02-01z-2 daysz-1 dayszdropna, valuesréc
    Cs†t ddddddg||||||gdœ¡}|r6||g}n ||tjg}|jd|d     d
ti¡}tjd
|itj|dd d }    t     ||    ¡dS) NrrAr@rPér[)ÚvaluesÚdtr^rr]©r<r)
r r!r(r)r"rYr#r=r*r+)
rr]Z    datetime1Z    datetime2Zunique_nulls_fixtureZunique_nulls_fixture2r0Zindexesr1r3r4r4r5Ú&test_groupby_dropna_datetime_like_dataøs"úþÿ
 r`z#dropna, data, selected_data, levelsé
éé)Úgroupsr]r]rZdropna_false_has_nan)ÚidZdropna_true_has_nanr
Zdropna_false_no_nanZdropna_true_no_nanc
Cs„t |¡}|jd|d}| dd„¡}tt|d|dƒƒ}tjj|ddgd}|sf|rf|j|dd}tj||d}    t     
||    ¡dS)    NrdrcSst dtt|ƒƒi¡S)Nr])r r!ÚrangerU)Úgrpr4r4r5Ú<lambda>Góz@test_groupby_apply_with_dropna_for_multi_index.<locals>.<lambda>r]rrr) r r!r"ÚapplyÚtupleÚzipr$r%r'r*r+)
rÚdataZ selected_dataÚlevelsr0rNrEZ    mi_tuplesr2r3r4r4r5Ú.test_groupby_apply_with_dropna_for_multi_indexs&
roÚ input_indexÚkeysÚseriescCsœt dtjgddgddgdœ¡}| |¡}|r8|d}n |ddgkrX|dgkrX|dg}|dk    rj| |¡}|j|dd    }|r„|d}| ¡}t ||¡dS)
NrrAr@)rrr
r
rrFr)    r r!r(r)Ú    set_indexr"r#r*Ú assert_equal)rprqrrÚobjr3rNrEr4r4r5Ú)test_groupby_dropna_with_multiindex_inputTs$ýÿ
 
 
 
rvc    Csædtjddtjgdddddgdœ}t |¡}|jd    d
d }|j}tj}dtjddg|d dtjdg|d tjtjddg|d i}t|     ¡|     ¡ƒD]\}}t
  ||¡q’t  t | ¡ƒd¡sÂt‚t | ¡ƒdd…ddgksât‚dS) NZg1Zg2rrrAr@rP)ÚgrouprrwFr©r;)r(r)r r!r"ÚindicesZintpÚarrayrlr]r*Zassert_numpy_array_equalÚisnanr&rqrM)rmr0r1rEr;r3Z result_valuesZexpected_valuesr4r4r5Útest_groupby_nan_includedrs "
ýr|cCsVtjtjddggdddgd}| ddg¡}|jddgdd ¡}|}t ||¡dS)    Nrrrrr
rFr)    r r!r(r)rsr"Úfirstr*r+)r0rEr3r4r4r5Ú&test_groupby_drop_nan_with_multi_index„s
r~Úsequence_indexéQr;ZUInt8ZInt8ZUInt16ZInt16ZUInt32ZInt32ZUInt64ZInt64ZFloat32ZFloat64ÚcategoryÚstringústring[pyarrow]zpyarrow is not installed©Úreason)Zmarksúdatetime64[ns]ú    period[d]z Sparse[float]Ú test_seriesc sÔd ‡fdd„tdƒDƒ¡}|dkr4ddtjdœ‰n&|d    krLd
d tjdœ‰nd d tjdœ‰t tj‡fdd„|Dƒ|ddd d dgdœ¡}|jddd|d}|r¨|d}|     ¡}i}t
|ƒD]\}    }
|  |
d¡|    ||
<q¼|dkr tj ‡fdd„|Dƒ|dj jdd} n^t|tƒrL| d¡rLtjtj‡fdd„|Dƒ|ddd} ntj‡fdd„|Dƒ|dd} tj| ¡| ddd} |sŽ|  ¡} |sÄ|  ¡} |dk    rÄ| d¡rÄ| d |¡| d<t || ¡dS)NÚcs(g|] }ddddœˆd|d‘qS)ÚxÚyÚz)rrrAr@r4)Ú.0Úk)rr4r5Ú
<listcomp>²sz(test_no_sort_keep_na.<locals>.<listcomp>rP)r‚rƒrŠr‹)rŠr‹rŒ)r†r‡z
2016-01-01z
2017-01-01rrAcsg|] }ˆ|‘qSr4r4©rÚlabel©Úuniquesr4r5r¿srxrr@)Úkeyrr”F)rÚsortÚas_indexrrcsg|] }ˆ|‘qSr4r4©rr r’r4r5rÏsr_ZSparsecsg|] }ˆ|‘qSr4r4rr’r4r5rÕscsg|] }ˆ|‘qSr4r4rr’r4r5rØsr:)rr<r;)Újoinrfr ZNAr(r)r!rBr"r#Ú    enumerateÚgetZCategoricalIndexÚcatÚ
categoriesÚ
isinstanceÚstrÚ
startswithr=rzr]Zto_frameÚ reset_indexÚastyper*rt) rr;rˆr–Úsequencer0rNrEZsummedr>r‘rr3r4)rr“r5Útest_no_sort_keep_naŽsP#ÿ
þÿ
 
ýÿr£c Cs˜t dddgi¡}tj||g|d}|r0|dn|}|j|d|d}| ¡}    t t|jƒg¡}
tjddgi|
d} |rˆt     |    | d¡n t 
|    | ¡dS)    NrrrArxF)rr•r@r) r r!rBr"r#r=rr;r*rCr+) r•r;r.r7rˆr0rdrurNrErr3r4r4r5Útest_null_is_null_for_dtypeäsr¤Ú
index_kindrfÚsingleÚmulticCs¾|dkr.|s.|dkr.d}|j tjj|d¡t tjjdddgddd¡}t     
t    j |ddd    gd
t d ƒd œ¡}|  ¡}    t    j |ddd    d gd
 d ¡|    d<|dkr¨dg}
n`|dkrÌdg}
| d¡}|     d¡}    n<ddg}
|d|d<| ddg¡}|    d|    d<|     ddg¡}    t||ƒ} t||    ƒ} |dkrT|dkrT| dj|
df} | dj|
df} |    j|
||dd} t| |ƒ| Ž ¡}|d d d¡|d<|dkrª|d d d¡|d<|rÖ|dkrÊ| ddg¡}n
| d¡}n6|dkr |dkr |jdd}|dkr |jdd}|dkr^|dkr^|dj ¡}|dkrHdd„|Dƒ}ndd„|Dƒ}||d<|dkrŒ|jddid}|rŒ|d d¡}|j|
d|||d}t||ƒ| Ž}t ||¡dS)N)ÚidxminÚidxmaxr§z@GH#10694 - idxmin/max broken for categorical with observed=Falser„rrAé©Úsizer@©rœrb©rŠr‹rPrŠrfr¦Zx2ZcorrwithrrT)Úobservedr•r–r¬)r©r¨r‹cSsg|]}|dkrtjn|‘qS)rP©r(r)r—r4r4r5r5sz-test_categorical_reducers.<locals>.<listcomp>cSs$g|]}|dkrtjtjfn|‘qS))rPrPr°r—r4r4r5r7sF©rr¯r•r–)ÚnodeÚ
add_markerÚpytestÚmarkÚxfailr(ÚappendÚrandomÚchoicer r!Ú CategoricalrfÚcopyÚfillnarsrZdropr"Úgetattrr Úreplacer]ÚtolistÚrenamer*rt)ÚrequestZreduction_funcr¯r•r–r¥Úmsgr]r0Z    df_filledrqÚargsZ args_filledZ    gb_filledr3Ú    gb_keepnarEr4r4r5Útest_categorical_reducers÷s|ÿþýÿ 
 
 
 
 
 
 
 
ÿrÅcCs|dkr$d}|j tjj|dd¡t tjjdddgddd¡}t     
t    j |ddd    gd
t d ƒd œ¡}t ||ƒ}||d  ¡d}    |dkržtt t|    ƒƒƒ}
nx|dkr|rÜ|rÆ|d jddd} qø|d jddd} n|jd|    jd…d  ¡} t|    ƒ| g}
nt|    |ƒ|Ž}
t     
d|
i¡} |jd d|||d} |jd d||d}t| |ƒ|Ž}t||ƒ|Ž}t||d  ¡j ¡| jƒD]0\}}|jdkr¤||j|<n||j|df<q„|dkrâ||d  ¡| | ¡@d7<|dkrö| d¡}t ||¡dS)Nr¼zBGH#49651 fillna may incorrectly reorders results when dropna=FalseF)r…ÚstrictrrArªr«r@r­rbr®rŠr‹ZcumcountZngrouprrr±T)rr¯r•)ZrankZdiffZ
pct_changeÚshiftÚint64)r²r³r´rµr¶r(r·r¸r¹r r!rºrfrZisnullr&rUZnuniqueÚilocrr½r"rlr¿r]ÚndimZnotnullÚger¡r*rt)rÁZtransformation_funcr¯r•r–rÂr]r0rÃZnull_group_valuesZnull_group_dataZna_groupZnull_group_resultrÄZ    gb_dropnarEr3rÉÚvaluer4r4r5Útest_categorical_transformersHsTÿ
 
ÿÿ   
"
 
rÍÚmethodÚheadÚtailc
Csètj dddgd¡}t tj|dddgdtt|ƒƒdœ¡}|jdd|||d    }t    ||ƒƒ}|d
krr|ddd …}|dk|dk 
¡d k@|dk|dk 
¡d k@B|dk|dk 
¡d k@B}|d
krÐ|ddd …}||}    t   ||    ¡dS) NrrArcr@r­r®rŠFr±rÐéÿÿÿÿr\) r(r¸r¹r r!rºrfrUr"r½Zcumsumr*r+)
rÎr¯r•r–r]r0rNrEÚmaskr3r4r4r5Útest_categorical_head_tail}s$ ÿ ÿýÿrÓcCsptj dddgd¡}t tj|dddgdtt|ƒƒdœ¡}|jddd    }|     d
d „¡}| 
¡}t   ||¡dS) NrrArcr@r­r®rŠFrcSs| ¡S©N©r#©rŠr4r4r5rhžriz&test_categorical_agg.<locals>.<lambda>) r(r¸r¹r r!rºrfrUr"rYr#r*r+©r]r0rNrEr3r4r4r5Útest_categorical_agg—s ÿrØcCsrtj dddgd¡}t tj|dddgdtt|ƒƒdœ¡}|jddd    }|     d
d „¡}|     d ¡}t
  ||¡dS) NrrArcr@r­r®rŠFrcSs| ¡SrÔrÕrÖr4r4r5rhªriz,test_categorical_transform.<locals>.<lambda>r#) r(r¸r¹r r!rºrfrUr"rTr*r+r×r4r4r5Útest_categorical_transform£s ÿ
rÙ)2Únumpyr(r´Zpandas.compat.pyarrowrZpandas.core.dtypes.missingrZpandasr Zpandas._testingZ_testingr*Zpandas.tests.groupbyrrµZ parametrizer)r6r8r?rBrFrKrOZ
RangeIndexr&r$Z from_productrVrZZarm_slowÚ    TimestampZ    TimedeltaZPeriodr`Úparamrorvr|r~rfZskipifr£r9r¤rÅrÍrÓrØrÙr4r4r4r5Ú<module>st    ýýýúþ
ý
 
 
ýýúþ
 
ýýþþ
$ ýþþ
þþþ
 
 
 
ýþ
ýýýúþ
ýþ"
û ûúúéþ#
 
ÿþéþ8 
P5