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
153
154
155
156
157
158
159
160
161
162
163
164
165
U
­ý°d’eã@säddlZddlZddlZddlmZmZmZmZm    Z    m
Z
ddl m Z dd„Zej dddg¡dd    „ƒZej d
dd g¡d d „ƒZej dddg¡dd„ƒZej dddg¡ej dedddejgdœƒeddgiedgdddfedejgdœededdgiedgdddfg¡dd„ƒƒZdd„Zdd„Zdd „Zd!d"„Zd#d$„Zej d%d&ge    d'd(d)d*gd+œd&ge    d'd(d)d*gd+œd&ge    d'd(d)d*gd+œfd&d,d&ge    d-d.d)e    d'd(d)e    d/d0d)gd*d1d2gd+œd&d,ge    d-d.d)e    d'd(d)gd*d1gd+œd&d,ge    d/d0d)e    d'd(d)gd2d1gd+œfg¡d3d4„ƒZej d5de    d6d7d)dgde    d8d7d)d9gg¡d:d;„ƒZej d<ejd=d>gd?dejd*d1gd@de dAdBg¡ej d*d1gdCdDg¡ej dEdddFdGg¡dHdI„ƒƒZ!dJdK„Z"ej dLdMd dgfdMdgfdMd*dd1gfdMdNdd*d1gfdOd d*gfdOdgfdOd*d*d1gfdOdNdd*d1gfg¡ej dPdgd&gd,gd&d,gg¡ej dQd=d>g¡dRdS„ƒƒƒZ#ej dTdMd dgfdMdgfdMd*dd1gfdMdNdd*d1gfdOd d*gfdOdgfdOd*d*d1gfdOdNdd*d1gfg¡dUdV„ƒZ$dWdX„Z%dYdZ„Z&d[d\„Z'ej d]dd^d_g¡d`da„ƒZ(ej d]dd^d_g¡dbdc„ƒZ)ddde„Z*dfdg„Z+ej ddddhg¡didj„ƒZ,ej dke-dd2d1ƒdd*dldmgge-ddnƒdd1dmgge-dd1ƒe-dndƒgdd*d1d2dldodNggdd*e-dndƒgdd*d1d2dldodNggg¡dpdq„ƒZ.drds„Z/dtdu„Z0dvdw„Z1dxdy„Z2dzd{„Z3ej d|dddd*d1d2dlge4d}ƒfdd*dd2ge4d~ƒfdddd*d1d2dlge4d}ƒfdd dd*d2ge4d€ƒfd*dd*d1dlge4dƒfd*d d*ge4d,ƒfd dd1dlge4d‚ƒfd d1dlge4dƒƒfg¡ej dd„d
g¡d…d†„ƒƒZ5ej 6d‡¡dˆd‰„ƒZ7dŠd‹„Z8dS)ŒéN)Ú    DataFrameÚIndexÚ
MultiIndexÚSeriesÚ    TimestampÚisnacCs | d¡}| ¡}|jddgdddgf}tddgdd    |_| ¡}t ||¡| d¡}|jddg}t ||¡|     ¡}|jd
d gdddgf}tddgdd    |_t ||¡| d ¡}|j
d
d g}t ||¡| d¡}|j
d dg}t ||¡|d ¡|d     ¡|d d¡t j |j|ddkdf<t |d ¡dƒsRt‚t |d     ¡dƒslt‚t |d d¡j
dƒsŠt‚tdt j gddgd
dggddgd}| d¡}| ¡}|j
dd g d¡}t ||¡|j
dd g}|jddd}t ||¡dS)NÚAérÚBÚCÚDÚbarÚfoo©Únameéééÿÿÿÿéééé©ÚcolumnsÚany©Údropna)ÚgroupbyÚfirstÚlocrÚindexÚ
sort_indexÚtmÚassert_frame_equalÚnthÚlastÚilocÚnpÚnanrÚAssertionErrorrÚ    set_index)ÚdfÚgroupedrÚexpectedr$r%ÚgÚresult©r0úTd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/groupby/test_nth.pyÚtest_first_last_nthsD
 
 
 
   $
 r2Úmethodrr%cCsŽtddddgddd|gdœƒ d¡}t||ƒƒ}|dkrBddg}nddg}tj||djd}tddgdd    }td|i|d
}t ||¡dS) Nr    rr©ÚaÚbr5rr6©Údtyper©r )    rrÚgetattrr'Úarrayr8rr"r#)r3Ú nulls_fixtureÚgroupsr/ÚvaluesÚidxr-r0r0r1Útest_first_last_with_na_object@s$ 
r@r rcCsftddddgddd|gdœƒ}| d¡}| |¡}|dkrH|jddgn |jddg}t ||¡dS)Nr    rrr4r5r©rrr$r&r"r#)r r<r+r=r/r-r0r0r1Útest_nth_with_na_objectRs
 
 
$rBcCs>t dgdgdœ¡}|jddd}t||ƒƒ}t ||¡dS)Nr5©ÚidÚvaluerDF©Úas_index)rÚ    from_dictrr:r"r#)r3r+r=r/r0r0r1Útest_first_last_with_None\s rIz df, expectedr5rrCrErDrr9r7cCs"t| d¡|ƒƒ}t ||¡dS)NrD)r:rr"r#)r3r+r-r/r0r0r1Ú"test_first_last_with_None_expandedgsrJc
Cs6| ¡}d|d<d|d<| d¡}| ¡}|jddgddd    ddgf}td
d gdd |_| ¡}t ||¡|     ¡}|jd dgddd    ddgf}td
d gdd |_| ¡}t ||¡| 
d¡}|j ddg}t ||¡t t dƒƒ}| d¡tt dƒ|dd}|jdkst‚|jdd ¡}    |    jdks2t‚dS)NTÚEr    ÚFrrr
r r r rrrrrré
é    é ZIntCol)Údatar rÚint64©Úlevel)Úcopyrrrrr r!r"r#r%r$r&ÚlistÚrangeÚappendrr8r))
Zdf_mixed_floatsr+r,rr-r%r$r?ÚsÚfr0r0r1Útest_first_last_nth_dtypes{s.
 
 
rZcCsˆtdgttjgtddœƒ}| d¡}| d¡j}t     |j 
¡|¡t     |j  ¡|¡|j}t     |j  d¡|¡t     |j  d¡|¡dS)Nrr7)rPÚnansrPrr) rrr'r(Úobjectrr*r[r"Úassert_series_equalrr%r$)r+r,r-r0r0r1Útest_first_last_nth_nan_dtype›s
 r^c
Cs€ttdƒddgtdƒddgdddgd    d
d giƒ}| d¡ ¡}tddd
ggttd ƒtd ƒd    gƒtdgddd}t ||¡dS)Nz2012-01-01 00:00:00r5r6z2012-01-02 00:00:00ÚcÚdrÚeZaaaarYr.z
2012-01-01z
2012-01-02r©rr )rrrrrr"r#)Útestr/r-r0r0r1Útest_first_strings_timestamps©s$üÿ
 ýrdc
Cshtdtjgddgddggddgd}| d¡}t | d¡|jdd    g¡t | d¡|jdg¡t | d    ¡|jg¡t | d
¡|jdd    g¡t | d ¡|jdg¡t | d ¡|jg¡t     |j
 d¡|j
jdd    g¡t     |j
 d¡|j
jdg¡t |dg d¡|dgjdd    g¡t |jdd d|jdd    g¡t |jd
d d|jdd    g¡t |jdd d|jdd…¡t |jd    d d|jdd…¡tddddddœddddddœddddddœddddddœd œƒ  d!d"g¡}|jdd#d$ d    ¡}|jd
g}t ||¡|jdd#d$ d%¡}|jg}t ||¡ttj   dd&d'¡d(d)}|d}|d}| |¡ ¡}| |¡ d*d+„¡}tj    ||d#d,|jdks¼t‚|jdksÌt‚||dkjd}|jd|ksòt‚|jd|kst‚tjtd-d.|j|d#d/jdd0dW5QRXtdtjgddgddggddgd}| d¡}|j
jdd1d}|j
jdd    g}t     ||¡tdtjgdd%gddgddgddggddgd}| d¡}t | d¡|jdd%g¡t | dg¡|jdd%g¡t | ddg¡|jddd%dg¡t | dd
g¡|jdd    d%dg¡t | ddd    g¡|jddd    d%dg¡t | ddd
g¡|jddd    d%dg¡t | d    g¡|jd    g¡t | d%dg¡|jg¡tjd2d3dd4}td|d5d6gd7}|jj|jjg}|j|d#d8 dd%d d
g¡}t d9d:d;d<d=d>d?d@dAdBdCdDg ¡}    tdd5d6g|    dE}t ||¡dS)FNr    rrrrr
rrrréþÿÿÿéýÿÿÿrrrÚgreenÚred)rr    rrrZhamÚeggsZporkgþI|î»ø?gçoB!²¿gHk :!4Àgn‹2d’Ý?gC8fٓÀà?g£W”†â?gV¿Òùð,ï¿gN'ÙêrŠð?gÃGĔH"é¿gû­(    ‰æ?)ÚcolorÚfoodÚtwoÚonerjrkF)rSrGrrM)édrrQr7cSs
|jdS)Nr)r&)Úxr0r0r1Ú<lambda>õóztest_nth.<locals>.<lambda>)Z check_nameszFor a DataFrame©Úmatch)ÚsortTÚallz4/1/2014z    6/30/2014)ÚstartÚendÚfreqr5r6©r rrFz2014/4/1z2014/4/4z    2014/4/29z    2014/4/30z2014/5/1z2014/5/6z    2014/5/29z    2014/5/30z2014/6/2z2014/6/5z    2014/6/27z    2014/6/30rb)rr'r(rr"r#r$r&rr]r
r*ÚrandomÚrandintrÚapplyrr)ÚpytestÚraisesÚ
ValueErrorÚpdÚ
date_ranger ÚyearÚmonthÚ to_datetime)
r+r.r/r-rXZ    expected2ÚvZbusiness_datesÚkeyZexpected_datesr0r0r1Útest_nth¼s²$
 (    ûûöÿí  
 "$
 0
$$((ôÿr‡cCs:| ddg¡}| d¡}|jddddg}t ||¡dS)Nrr
rrrr)rr$r&r"r#©Z three_groupr,r/r-r0r0r1Útest_nth_multi_grouper/s
r‰z#data, expected_first, expected_lastrz2012-02-01 14:00:00z
US/Central©Útzr    )rDÚtimerr
z2012-01-01 13:00:00zAmerica/New_Yorkz2012-03-01 12:00:00z Europe/LondonrrcCsÐt|ƒ}|jddd ¡}t|ƒ}dddg}t ||||¡|jdddd ¡}t ||ddg¡|jddd ¡}t|ƒ}dddg}t ||||¡|jdddd ¡}t ||ddg¡dS)NrDFrFrŒr)rrrr"r#r%)rPZexpected_firstZ expected_lastr+r/r-Úcolsr0r0r1Útest_first_last_tz8s6
 
rŽzmethod, ts, alphaz
2013-01-01ú
US/Easternz
2013-01-02r6cCsttdƒƒ d¡}tdddg|tjddddd    œƒ}t| d
¡|ƒƒ}ttj|d g|j    d |t
d ddgdœt ddgd
dd}t   ||¡dS)NÚabcÚcategoryr    rZ20130101rr)Zperiodsr‹)ÚgroupÚcategory_stringÚ
datetimetzr’r_r7z
2013-01-03rŠ)r“r”rr9)rrUÚastyperr€rr:rZ Categoricalr8rrr"r#)r3ÚtsÚalphar“r+r/r-r0r0r1Útest_first_last_tz_multi_columns$    ýÿÿüù    r˜r>TFÚbooleanZInt64z
2020-01-01z
2020-02-01r )ÚunitÚfunctionÚminÚmaxc    Cs„tddg|dœƒ}| d¡}tddgdd}t|d|d}td|i|d}t|d|ƒƒ}t ||¡| d|i¡}t ||¡dS)    Nr    rr4r5rr6)rr r9)    rrrrr:r"r]Zaggr#)    r>r›r+r,r?Zexpected_seriesZexpected_frameZ result_seriesZ result_framer0r0r1Ú+test_first_last_extension_array_keeps_dtypeŸs 
 ržcCsŒtdddddddddddg dddddddddddg dddddddddddg dœƒ}| dd    g¡}| d
¡}|jd
d d d g}t ||¡dS)Nrr rmrlZdullZshiny)rr
r rr
rrrrrArˆr0r0r1Ú test_nth_multi_index_as_expected¹sVõõõåÿ+
rŸzop, n, expected_rowsÚheadrÚtailrrGc    Csptddgddgddggddgd}|jd|d    }|j|}|dk    rR||}||}t||ƒ|ƒ}t ||¡dS)
Nr    rrrrrr
rrF©rrr&r:r"r#)    ÚopÚnÚ expected_rowsrrGr+r.r-r/r0r0r1Útest_groupby_head_tailís"
r¦zop, n, expected_colscCsvtdddgdddgdddgddd    ggd
d d gd }|jdddgdd}|jdd…|f}t||ƒ|ƒ}t ||¡dS)Nr    rrrrrrérNrr
r rr©Zaxisr¢)r£r¤Z expected_colsr+r.r-r/r0r0r1Útest_groupby_head_tail_axis_1s"ÿr©cCstddgddgddggddgd}|jd    dg}| d¡}|jdd
}| d    ¡}t ||¡t ||¡| d¡}|jdd
}| d    ¡}t ||¡t ||¡| d¡}| d    ¡}|jdd
}t ||¡t ||¡| d¡}| d    ¡}|jdd
}t ||¡t ||¡dS) Nr    rrrrrr
rr©r¤)rr&rr r$r"r#r¡)r+r-r.Zresult1Zresult2r0r0r1Útest_group_selection_caches,"
 
 
 
 
 
 
 
  r«cCsptdgdddgd}| d¡ d¡}|jdd…}t ||¡| ddg¡ d¡}|jdd…}t ||¡dS)Nrr5r6r_ryrMrA©r+r/r-r0r0r1Útest_nth_empty=s r­cCs˜tdddgdddgddtjgdddgdd    d
ggd d d gd}| d ¡ d¡}|jddg}t ||¡| d ¡jddd}|jddg}t ||¡dS)Nr    r6rnr5é2rr_éÈr`é–rr r
rrrrrrr©rr'r(rr$r&r"r#r¬r0r0r1Útest_nth_column_orderIs,þ r²rrrucCsfttjdtjdtjgdddddgdd    d
d d gd œƒ}| d¡jd|d}|jdd    g}t ||¡dS)Nr5r6rrrrr§r    rrrrN)r5r6r_rr±©rr+r/r-r0r0r1Útest_nth_nan_in_grouperYs  ýÿr´cCsbttjdtjdtjgdddddgdœƒ}| d¡djd|d    }|djd
d g}t ||¡dS) Nr5r6rrrrr§r4rr    r)rr'r(rr$r&r"r]r³r0r0r1Útest_nth_nan_in_grouper_seriesis þÿrµc    Cs tdddddgdt d¡gtdddddgd    d
d œƒ}| d ¡ ¡}td t d¡gtdddgƒ t dddg¡¡dœƒ}t    dddgd d|_
t   ||¡dS)NrÚsecondÚthirdrZNaTr5r6r_r‘r7)r’rŒÚ
categoriesr’r)rŒr¸r) rr'Z
datetime64rrrr•r€ÚCategoricalDtyperr r"r#r¬r0r0r1Ú,test_first_categorical_and_datetime_data_natxs  ýÿÿþÿrºc
Cs¸tdddddgdddddgdddddgdd    d
d d gd œƒ}| d di¡}|jddgd ¡}tdddgtdd
d gƒ t dd
d    d g¡¡dœƒ}tjdddgddgd|_    t
  ||¡dS)Nr    rrnr¯ZappleZorangeZmangoZjupiterZmercuryZmarsZvenus)rr
r r r r‘rr
)Zby)r r )r    rn)r    r¯)rrn)Únames) rr•rrrr€r¹rÚ from_tuplesr r"r#r¬r0r0r1Ú(test_first_multi_key_groupby_categoricalŽs*    üÿÿþÿÿr½r$cCsftdgƒ}t|||d|gdddddgdjdd}|dkrJt||ƒdƒ}n t||ƒƒ}t ||¡dS)NÚyrr9rRr$r)rrr:r"r])r3r<r-rPr/r0r0r1Ú%test_groupby_last_first_nth_with_none¨s
  þý r¿zarg, expected_rowsrrrercCs:|j|}| |¡}|j|}t ||¡t ||¡dS©N)r$r&r"r#)Ú slice_test_dfÚslice_test_groupedÚargr¥r/Ú
equivalentr-r0r0r1Ú
test_slice¹s
 
 
 
 rÅcCs^|jdddd…f}| ddtddƒg¡}|jdddddddg}t ||¡t ||¡dS)    Nrr    rerrrrr)r$Úslicer&r"r#)rÁrÂr/rÄr-r0r0r1Útest_nth_indexedÍs
 rÇc    Cs(tjtdd| d¡W5QRXdS)Nz Invalid indexrrg…ëQ¸    @)r}r~Ú    TypeErrorr$©rÂr0r0r1Útest_invalid_argumentØsrÊc    Cs0tjtdd| tdddƒ¡W5QRXdS)Nz Invalid steprrr)r}r~rr$rÆrÉr0r0r1Útest_negative_stepßsrËcCs8| t ddg¡¡}|jdddddg}t ||¡dS)Nrr    rrr)r$r'r;r&r"r#)rÁrÂr/r-r0r0r1Ú test_np_intsæsrÌcCshtdddgdddggddgdd    d
gd }|j|jd d d  d¡}|jdd…ddgf}t ||¡dS)Nrrrr§rÚzr¾r r
rryr    r¨rr)rrr&r$r"r#r¬r0r0r1Ú!test_groupby_nth_with_column_axisîsþúrÎz.start, stop, expected_values, expected_columnsÚABCDEZADrNZABDZBCEZCErKÚcallcstttdƒgtdƒgd}|jdddddgdd‰‡fdd„‡fd    d„d
œ|||ƒ}t|g|gd}t ||¡dS) NrrÏrrr    r¨csˆ t||ƒ¡SrÀ)r$rÆ©rvÚstop©Úgbr0r1rprqz2test_nth_slices_with_column_axis.<locals>.<lambda>csˆj||…SrÀ)r$rÑrÓr0r1rprq)rÐr )rrVrUrr"r#)rvrÒZexpected_valuesZexpected_columnsr3r+r/r-r0rÓr1Ú test_nth_slices_with_column_axisýs
 
þýýrÕz<ignore:invalid value encountered in remainder:RuntimeWarningcCs®tddgdtjgdtjgdtjggddgd}tddggddgd}| ddg¡jdd    }t ||¡| ddg¡jdd    }t ||¡| ddg¡jd
d    }t ||¡dS) Nr5rÍr6r_ÚXÚYrr    rªr©    rr'r(rr r"r#r¡r$©r+r-r/r0r0r1Útest_head_tail_dropna_trues ÿ  rÚcCsÂtddgdtjgdtjggddgd}tddgdtjgdtjggddgd}|jddgdd    jd
d }t ||¡|jddgdd    jd
d }t ||¡|jddgdd    jd d }t ||¡dS) Nr5rÍr6r_rÖr×rFrr    rªrrØrÙr0r0r1Útest_head_tail_dropna_false,s&&  rÛ)9Únumpyr'r}Zpandasr€rrrrrrZpandas._testingZ_testingr"r2ÚmarkZ parametrizer@rBrIr(r\rJrZr^rdr‡r‰rŽr˜r;r„Z to_timedeltaržrŸr¦r©r«r­r²r´rµrºr½r¿rÆrÅrÇrÊrËrÌrÎrUrÕÚfilterwarningsrÚrÛr0r0r0r1Ú<module>s8  0
 
    
 
þþûþ  s    
ý
ý
ýõ
 
 
ýù
 
 
þú    
 
þúîîþ1
þþ
 üþ     4
 
 øþ  
 
 øþ
 
 
 
$ üþ    
 øþ  ÿ