hyb
2026-01-30 44480e71b27aa9d4cb8441f50c873f1b110e9691
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
Ë
nñúhe‡ãó —ddlmZddlZddlmZmZddlZddlZddl    m
cm Z ddl mZddlmZddlmZddlmZmZddlmZmZmZmZdd    lmZdd
lmZddlm cm!Z"dd lm#Z#m$Z$dd l%m&Z&dd l'm(Z(ddl)m*Z*ddl+m,Z,m-Z-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4m5Z5m6Z6m7Z7m8Z8erddl9m:Z:m;Z;m<Z<ddl=m>Z>ddl?m@Z@Gd„d«ZA    d"            d#d„ZBd"d$d„ZC    d"                    d%d„ZD                        d&d„ZEd'd(d„ZFd)d(d„ZGd*d„ZH    d'                                    d+d„ZI                                d,d „ZJd-d!„ZKy).é)Ú annotationsN)Ú TYPE_CHECKINGÚcast)ÚPerformanceWarning)Úcache_readonly)Úfind_stack_level)Úfind_common_typeÚ maybe_promote)Úensure_platform_intÚis_1d_only_ea_dtypeÚ
is_integerÚneeds_i8_conversion)ÚExtensionDtype)Únotna)Ú    factorizeÚunique)Úfactorize_from_iterable)Úensure_wrapped_if_datetimelike)Ú    DataFrame)ÚIndexÚ
MultiIndexÚ
RangeIndex)Úconcat)ÚSeries)Úcompress_group_indexÚdecons_obs_group_idsÚget_compressed_idsÚget_group_indexÚget_group_index_sorter)Ú    ArrayLikeÚLevelÚnpt)ÚExtensionArray)Ú
FrozenListcóÀ—eZdZdZ    d                            dd„Ze        dd„«Zedd„«Zdd„Zd„Z    edd„«Z
edd„«Z dd    „Z dd „Z dd „Zedd „«Zedd„«Zy
)Ú
_Unstackera    
    Helper class to unstack data / pivot with multi-level index
 
    Parameters
    ----------
    index : MultiIndex
    level : int or str, default last level
        Level to "unstack". Accepts a name for the level.
    fill_value : scalar, optional
        Default value to fill in missing values if subgroups do not have the
        same set of labels. By default, missing values will be replaced with
        the default fill value for that data type, NaN for float, NaT for
        datetimelike, etc. For integer types, by default data will converted to
        float and missing values will be set to NaN.
    constructor : object
        Pandas ``DataFrame`` or subclass used to create unstacked
        response.  If None, DataFrame will be used.
 
    Examples
    --------
    >>> index = pd.MultiIndex.from_tuples([('one', 'a'), ('one', 'b'),
    ...                                    ('two', 'a'), ('two', 'b')])
    >>> s = pd.Series(np.arange(1, 5, dtype=np.int64), index=index)
    >>> s
    one  a    1
         b    2
    two  a    3
         b    4
    dtype: int64
 
    >>> s.unstack(level=-1)
         a  b
    one  1  2
    two  3  4
 
    >>> s.unstack(level=0)
       one  two
    a    1    3
    b    2    4
 
    Returns
    -------
    unstacked : DataFrame
    cóÈ—||_||_|j«|_|jj    |«|_d|jj |j
vrdnd|_t|jj«|_
t|jj«|_ |jj|j
«|_|jj|j
«|_|j|j
|_|jslt#|jj |j
«}|jj%|«|_|j j%|«|_t'j(|jDcgc]}|j*‘Œc}«}|jj*}||z}    |    t'j,t&j.«j(kDr(t1j2d|    ›dt4t7«¬«|j9«ycc}w)Néÿÿÿÿérz%The following operation may generate z& cells in the resulting pandas object.)Ú
stacklevel)Ú constructorÚsortÚremove_unused_levelsÚindexÚ_get_level_numberÚlevelÚcodesÚliftÚlistÚlevelsÚnew_index_levelsÚnamesÚnew_index_namesÚpopÚ removed_nameÚ removed_levelÚremoved_level_fullrÚtakeÚnpÚmaxÚsizeÚiinfoÚint32ÚwarningsÚwarnrrÚ_make_selectors)
Úselfr.r0r+r,Ú unique_codesÚ index_levelÚnum_rowsÚ num_columnsÚ    num_cellss
          úNH:\Change_password\venv_build\Lib\site-packages\pandas/core/reshape/reshape.pyÚ__init__z_Unstacker.__init__nsÏ€ð'ˆÔ؈Œ    à×/Ñ/Ó1ˆŒ
à—Z‘Z×1Ñ1°%Ó8ˆŒ
ð˜tŸz™z×/Ñ/°·
±
Ñ;Ñ;‘AÀˆŒ    ô!% T§Z¡Z×%6Ñ%6Ó 7ˆÔÜ# D§J¡J×$4Ñ$4Ó5ˆÔà ×0Ñ0×4Ñ4°T·Z±ZÓ@ˆÔØ!×2Ñ2×6Ñ6°t·z±zÓBˆÔØ"'§,¡,¨t¯z©zÑ":ˆÔ؏yŠyÜ! $§*¡*×"2Ñ"2°4·:±:Ñ">Ó?ˆLØ!%×!3Ñ!3×!8Ñ!8¸Ó!FˆDÔ Ø&*×&=Ñ&=×&BÑ&BÀ<Ó&PˆDÔ #ô —6‘6¸t×?TÑ?TÖU° ˜;×+Ó+ÒUÓVˆØ×(Ñ(×-Ñ-ˆ ð˜{Ñ*ˆ    ð ”r—x‘x¤§¡Ó)×-Ñ-Ò -Ü M‰MØ7¸    °{ðC2ð3ä"Ü+Ó-õ     ð     ×ÑÕùòVsÇIcó^—|j}t|jj«}t|jj«}|d|||dzdz||gz}t d„|d|||dzdz||gzD««}t ||«\}}t|«}t||«}    |    |fS)Nr)c3ó2K—|]}t|«–—Œy­w©N©Úlen©Ú.0Úxs  rKú    <genexpr>z2_Unstacker._indexer_and_to_sort.<locals>.<genexpr>¨sèø€ÒK ”c˜!—fÑKùó‚)    r0r3r.r1r4ÚtuplerrQr)
rEÚvr1ÚlevsÚto_sortÚsizesÚ
comp_indexÚobs_idsÚngroupsÚindexers
          rKÚ_indexer_and_to_sortz_Unstacker._indexer_and_to_sortœs»€ð J‰JˆäT—Z‘Z×%Ñ%Ó&ˆÜD—J‘J×%Ñ%Ó&ˆØ˜˜)˜e A¨¡E G˜nÑ,°°a±¨zÑ9ˆÜÑK d¨2¨A h°°a¸!±e°g°Ñ&>À$ÀqÁ'ÀÑ&JÔKÓKˆä0°¸%Ó@ш
Gܐg“,ˆä(¨°WÓ=ˆØ˜ÐÐócó„—|j\}}|jr|Dcgc]}|j|«‘Œc}S|Scc}wrO)r`r,r<)rEr_rZÚlines    rKÚ sorted_labelsz_Unstacker.sorted_labels°s=€à×4Ñ4шØ 9Š9Ø3:Ö;¨4D—I‘I˜gÕ&Ò;Ð ;؈ùò<s =cóp—|jr)|j\}}tj||d¬«}|S|S)Nr)Úaxis)r,r`ÚalgosÚtake_nd)rEÚvaluesr_Ú_Ú sorted_valuess     rKÚ_make_sorted_valuesz_Unstacker._make_sorted_values·s5€Ø 9Š9Ø×2Ñ2‰JˆGQä!ŸM™M¨&°'ÀÔBˆMØ Ð  Øˆ racó@—|j}|jdd}td„|D««}t||«\}}t    |«}t |«}|j j|j|jz}||f|_
|jd||zz|jz}tjtj|j«t¬«}    |    j|d«|    j!«t    |j «kr t#d«‚||_|    |_|j(r*|j+tj,|««|_ytj(tj0|d¬«d«|_y)Nr(c3ó2K—|]}t|«–—Œy­wrOrPrRs  rKrUz-_Unstacker._make_selectors.<locals>.<genexpr>Äsèø€Ò7 qœC ŸFÑ7ùrV©ÚdtypeTz0Index contains duplicate entries, cannot reshape)Ú return_indexr))r5rdrWrrQr r.Úlevshaper0r2Ú
full_shaper=ÚzerosÚprodÚboolÚputÚsumÚ
ValueErrorÚ group_indexÚmaskr,Ú searchsortedÚarangeÚ
compressorr)
rEÚ
new_levelsÚremaining_labelsÚ level_sizesr\r]r^ÚstrideÚselectorr{s
          rKrDz_Unstacker._make_selectors¿sD€Ø×*Ñ*ˆ
ð ×-Ñ-¨c¨rÐ2ÐÜÑ7¨JÔ7Ó7ˆ ä0Ð1AÀ;ÓOш
Gܐg“,ˆä(¨Ó4ˆ
Ø—‘×$Ñ$ T§Z¡ZÑ0°4·9±9Ñ<ˆØ! 6˜/ˆŒà×%Ñ% bÑ)¨F°ZÑ,?Ñ?À$Ç)Á)ÑKˆÜx‰xœŸ™ §¡Ó0¼Ô=ˆØ ‰˜4Ô à 8‰8‹:œ˜DŸJ™J›Ò 'ÜÐOÓPÐ Pà%ˆÔ؈Œ    Ø 9Š9Ø(×5Ñ5´b·i±iÀÓ6HÓIˆDOä Ÿg™g¤b§i¡i°
ÈÔ&NÈqÑ&QÓRˆDOracóH—t|jj««SrO)rvr{Úall)rEs rKÚmask_allz_Unstacker.mask_allÛs€äD—I‘I—M‘M“OÓ$Ð$racóėtjt|j«tj¬«}|j |d¬«\}}||j d«fS)Nror(©Ú
fill_valuer)r=r}rQr.ÚintpÚget_new_valuesÚany)rEÚ    dummy_arrÚ
new_valuesr{s    rKÚ arange_resultz_Unstacker.arange_resultßsM€ô—I‘Iœc $§*¡*›o´R·W±WÔ=ˆ    Ø×.Ñ.¨yÀRÐ.ÓHш
Dؘ4Ÿ8™8 A›;Ð&Ð&racó.—|jdk(r|dd…tjf}|€|jddk7r t    d«‚|j ||«\}}|j |«}|j}|j||||j¬«S)Nr)z-must pass column labels for multi-column data)r.Úcolumnsrp)
Úndimr=ÚnewaxisÚshaperyr‹Úget_new_columnsÚ    new_indexr+rp)rEriÚ value_columnsr‰rjr‘r.s       rKÚ
get_resultz_Unstacker.get_resultçs•€Ø ;‰;˜!Ò ØšAœrŸz™z˜MÑ*ˆFà Ð   V§\¡\°!¡_¸Ò%9ÜÐLÓMÐ Mà×'Ñ'¨°
Ó;‰    ˆØ×&Ñ& }Ó5ˆØ—‘ˆà×ÑØ ˜%¨¸¿ ¹ ð ó
ð    
raNc óä—|jdk(r|dd…tjf}|j|«}|j\}}|j
d}||z}||f}|j }    |j}
|
r\t|«rQ|j|||«jdd«j|«} tj|t¬«} | | fS|j} |
r$|j} tj|| ¬«} npt| t «r)| j#«}|j%|| ¬«} || ddn7t'| |«\} }tj|| ¬«} | j)|«| j*}tj,|t¬«} t/|j«r#|j1d«}| j1d«} n|j3|d¬«}t5j6||    j1d«|||| | j1d««t/|j«r7| j1d«} t9| «} | j1|j«} | | fS)    Nr)éroÚi8F©ÚcopyÚu1zM8[ns])r’r=r“rlrsr”r{r†rQÚreshapeÚswapaxesÚonesrvrpÚemptyÚ
isinstancerÚconstruct_array_typeÚ_emptyr
ÚfillÚnamertrÚviewÚastypeÚ
libreshapeÚunstackr)rErir‰rkÚlengthÚwidthr‚Ú result_widthÚ result_shaper{r†rŽÚnew_maskrpÚclsr§s                rKr‹z_Unstacker.get_new_valuesös%€Ø ;‰;˜!Ò ØšAœrŸz™z˜MÑ*ˆFà×0Ñ0°Ó8ˆ 🙉 ˆØ—‘˜a‘ˆØ˜v‘~ˆ Ø  Ð-ˆ ؏y‰yˆØ—=‘=ˆñ œ˜Fœ ð
×%Ñ% f¨e°VÓ<ß‘˜!˜Q“ß‘˜Ó&ð ô
—w‘w˜|´4Ô8ˆHؘxÐ'Ð 'à— ‘ ˆñ Ø—L‘LˆEÜŸ™ ,°eÔ<‰Jä˜%¤Ô0ð×0Ñ0Ó2Ø ŸZ™Z¨ ¸E˜ZÓB
Ø *
™1‘ ä$1°%¸Ó$DÑ!zÜŸX™X l¸%Ô@
Ø—‘ 
Ô+àz‰zˆÜ—8‘8˜L´Ô5ˆô
˜vŸ|™|Ô ,Ø)×.Ñ.¨tÓ4ˆMØ#Ÿ™¨Ó.‰Jà)×0Ñ0°¸EÐ0ÓBˆMô    ×ÑØ Ø I‰Id‹OØ Ø Ø Ø Ø M‰M˜$Ó ô    
ô ˜vŸ|™|Ô ,ð$Ÿ™¨Ó2ˆJÜ7¸
ÓCˆJØ#Ÿ™¨¯©Ó6ˆJà˜8Ð#Ð#racój—|€|jdk(r&|jj|j¬«S|jj    d|jj
¬«}|j |j«St|j«|jz}t|«}tjtj|«|«}t|t«r]|j|jfz}|j|jfz}|j Dcgc]}|j#|«‘Œ}    }n)||jg}|j$|jg}|g}    |j&}
|    j)tj*|
|««t||    |d¬«Scc}w)Nr©r§)ÚitemF©r4r1r6Úverify_integrity)r2r:Ú_renamer9ÚinsertÚ    _na_valueÚrenamerQr=Úrepeatr}r£rr4r;r6r1r<r§Ú    _repeaterÚappendÚtile) rEr—Úlevr‚r­Ú
propagatorrÚ    new_namesÚlabÚ    new_codesÚrepeaters            rKr•z_Unstacker.get_new_columnsEs‡€Ø Ð  Øy‰y˜AŠ~Ø×)Ñ)×1Ñ1°t×7HÑ7HÐ1ÓIÐIà×$Ñ$×+Ñ+¨A°D×4FÑ4F×4PÑ4PÐ+ÓQˆCØ—:‘:˜d×/Ñ/Ó0Ð 0äT×'Ñ'Ó(¨4¯9©9Ñ4ˆÜMÓ"ˆÜ—Y‘YœrŸy™y¨Ó/°Ó8ˆ
ô m¤ZÔ 0à&×-Ñ-Ø×'Ñ'ð1ñˆJð&×+Ñ+¨t×/@Ñ/@Ð.BÑBˆIà9F×9LÑ9LÖM°#˜Ÿ™ *Õ-ÐMˆIÑMðØ×'Ñ'ðˆJð'×+Ñ+¨T×->Ñ->Ð?ˆIØ#˜ ˆIà—>‘>ˆð    ×ÑœŸ™ ¨5Ó1Ô2ÜØ Y°iÐRWô
ð    
ùòNsÄ,F0cóx—t|j«t|j«k7rJ|jj|j«}|jrt j |dd«}|St|j«|jz}t j|«|jz
}|S)Nrr()rQr;r:Ú get_indexerr2r=r¸r})rErÄr‚s   rKr¼z_Unstacker._repeaterks•€ô ˆt×&Ñ&Ó '¬3¨t×/AÑ/AÓ+BÒ Bà×.Ñ.×:Ñ:¸4×;MÑ;MÓNˆH؏yŠyÜŸ9™9 X¨q°"Ó5ð ˆô˜×+Ñ+Ó,¨t¯y©yÑ8ˆFÜ—y‘y Ó(¨4¯9©9Ñ4ˆHàˆracóÞ—|jddDcgc]}|j|j«‘Œ}}t|j«dk(ry|jd|d}}|dk(j «r%|j t|«|j«}|j|«j|jd«St|j||jd¬«Scc}w)Nr(r)rFrµ) rdr<r~rQr5rŒr¸r¹rºr7r)rErÂÚ result_codesr0Ú level_codess     rKr–z_Unstacker.new_indexzsڀð>B×=OÑ=OÐPSÐQSÐ=TÖU°c˜Ÿ™ §¡Õ1ÐUˆ ÐUô ˆt×$Ñ$Ó %¨Ò *Ø!%×!6Ñ!6°qÑ!9¸<ȹ?;ˆEؘrÑ!×&Ñ&Ô(ØŸ ™ ¤S¨£Z°·±ÓAØ—:‘:˜kÓ*×1Ñ1°$×2FÑ2FÀqÑ2IÓJÐ JäØ×(Ñ(ØØ×&Ñ&Ø"ô    
ð    
ùòVs’"C*)T)r.rr0r!r,rvÚreturnÚNone)rÊz-tuple[npt.NDArray[np.intp], list[np.ndarray]])rÊzlist[np.ndarray])riú
np.ndarrayrÊrÌ)rÊrv)rÊz2tuple[npt.NDArray[np.intp], npt.NDArray[np.bool_]])rÊrrO)r—z Index | None)rÊrÌ)rÊr)Ú__name__Ú
__module__Ú __qualname__Ú__doc__rLrr`rdrlrDr†rr˜r‹r•r¼r–©rarKr&r&@sԄñ+ð\JNð,Øð,Ø(-ð,ØBFð,à     ó,ð\ð ð
ò óð ð&òóðó òSð8ò%óð%ðò'óð'ó 
óM$ó^$
ðLò óð ðò
óñ
rar&c󲇗t|«dk(r|S|j}tt|«}||jvr|g}|Dcgc]}|j |«‘Œ}}t |j«Dcgc]    }||vsŒ|‘Œ }}|Dcgc]}|j|‘Œ}}|Dcgc]}|j|‘Œ}}|Dcgc]}|j|‘Œ}    }|Dcgc]}|j|‘Œ}
}|Dcgc]}|j|‘Œ} }|Dcgc]}|j|‘Œ} }td„|D««} t|| dd¬«}t|d¬«\}}t||| |d¬«}|st|d¬«}nt|
|gz| |gz| dgzd¬    «}t|t «r3|j#«}||_|j%d||¬
«}|}|    }|}n t|j&t«rG|}|rA|j)d«}|j%|||¬
«}|Dcgc]}||kr|n|d z
‘Œ}}|rŒA|S|j#d¬ «}||_|j%d||¬
«}t|t «r |jŠn |j&Št‰t«sJ‚‰jdg|z}|j&j*g|    z}‰jdg}|j-ˆfd „|D««t|||d¬    «}t|t «r    ||_|S||_|Scc}wcc}wcc}wcc}wcc}wcc}wcc}wcc}wcc}w)Nrc3ó2K—|]}t|«–—Œy­wrOrPrRs  rKrUz$_unstack_multiple.<locals>.<genexpr>¨sèø€Ò*˜Q”#a—&Ñ*ùrVF)r,Úxnull©r,)rÔÚ__placeholder__r³rµ©r‰r,r)©Údeepc3óZ•K—|]"}|j‰jd«–—Œ$y­w)r(N)r<r1)rSÚrecÚunstcolss  €rKrUz$_unstack_multiple.<locals>.<genexpr>Ûs#øèø€ÒN¸#˜Ÿ™ (§.¡.°Ñ"4×5ÑNùsƒ(+)rQr.rrr6r/ÚrangeÚnlevelsr4r1rWrrrrr£rrr«r‘r8r§Úextend)ÚdataÚclocsr‰r,r.ÚiÚrlocsÚclevelsÚccodesÚcnamesÚrlevelsÚrcodesÚrnamesr”rzÚcomp_idsr]Ú recons_codesÚ dummy_indexÚdummyÚ    unstackedrrÁrÃÚresultÚvalrXÚdummy_dfÚ new_columnsrÜs                             @rKÚ_unstack_multipleróŽscø€ô ˆ5ƒzQ‚؈ ð J‰J€EÜ ”˜UÓ #€E𠐗 ‘ ÑØˆØ16Ö 7¨AˆU× $Ñ $ QÕ 'Ð 7€EÐ 7ä˜eŸm™mÓ,Ö ?1°¸²ŠQÐ ?€EÐ ?à(-Ö. 1ˆu|‰|˜A‹Ð.€GÐ.Ø&+Ö , ˆek‰k˜!‹nÐ ,€FÐ ,Ø&+Ö , ˆek‰k˜!‹nÐ ,€FÐ ,Ø(-Ö. 1ˆu|‰|˜A‹Ð.€GÐ.Ø&+Ö , ˆek‰k˜!‹nÐ ,€FÐ ,Ø&+Ö , ˆek‰k˜!‹nÐ ,€FÐ ,ä Ñ* 'Ô*Ó *€EÜ! &¨%°eÀ5ÔI€Kä,¨[¸uÔEÑ€HˆgÜ'¨°'¸5À&ÐPUÔV€Lá ä˜GÐ*;Ô<‰ ä Ø˜g˜YÑ&ؘH˜:Ñ%ØÐ-Ð.Ñ.Ø"ô    
ˆ ô$œÔØ—    ‘    “ ˆØ!ˆŒ à—M‘MÐ"3À
ÐQUMÓVˆ    Øˆ
؈    Ø Š    ä d—l‘l¤JÔ /؈FÙØ—i‘i “lØŸ™¨¸
ȘÓNØ:?Ö@°Q˜a #šg™¨1¨q©5Ñ0Ð@Ð@òð
ˆMð—9‘9 %9Ó(ˆØ$ˆŒà×$Ñ$Ø ¨*¸4ð%ó
ˆ    ô i¤Ô (Ø —‘‰Hà ×(Ñ(ˆHܘ(¤JÔ/Ð/Ð/Ø—o‘o aÑ(Ð)¨GÑ3ˆ
Ø—\‘\×&Ñ&Ð'¨&Ñ0ˆ    à—^‘^ AÑ&Ð'ˆ    Ø×ÑÓNÀÔNÔN䨠°)Èeô€Kô)œVÔ$Ø%ˆ    Œð Ðð(ˆ    Ôà ÐùòS 8ùâ ?ùâ.ùÚ ,ùÚ ,ùÚ.ùÚ ,ùÚ ,ùòBAs<ÁL,Á4    L1Á>L1ÂL6Â$L;ÃMÃMÃ8M
ÄMÈ"Mcó´—t|ttf«r"t|«dk7rt    ||||¬«S|d}t |«s |dk(s|j j|«t|t«rEt|j t«rt||||¬«S|jjd¬«St|j t«s"tdt|j «›d«‚t|j «rt#||||¬    «St%|j ||j&|¬
«}|j)|j*d|¬ «S) Nr)r×rrÖT)Ú future_stackz'index must be a MultiIndex to unstack, z  was passedrÕ©r0r+r,©r—r‰)r£rWr3rQrór r.r/rrÚ_unstack_frameÚTÚstackryÚtyper rpÚ_unstack_extension_seriesr&Ú_constructor_expanddimr˜Ú_values)Úobjr0r‰r,Ú    unstackers     rKr«r«és+€Ü%œ%¤˜Ô'Ü ˆu‹:˜Š?ô% S¨%¸JÈTÔRÐ Rà˜!‘HˆEä eÔ  UÐ.?Ò%?à     ‰    ×#Ñ# EÔ*ä#”yÔ!Ü c—i‘i¤Ô ,Ü! # u¸È$ÔOÐ Oà—5‘5—;‘;¨D;Ó1Ð 1Ü ˜Ÿ    ™    ¤:Ô .ôØ5´d¸3¿9¹9³oÐ5FÀkÐ Ró
ð    
ô ˜sŸy™yÔ )Ü,¨S°%¸È$ÔOÐ OÜØ I‰I˜U°×0JÑ0JÐQUô
ˆ    ð×#Ñ#Ø K‰K t¸
ð$ó
ð    
racó\—t|jt«sJ‚t|j||j|¬«}|j
s:|j j||¬«}|j||j¬«S|j|j|j|¬«S)Nrörˆ)Úaxesr÷) r£r.rr&Ú _constructorÚ_can_fast_transposeÚ_mgrr«Ú_constructor_from_mgrrr˜rþr‘)rÿr0r‰r,rÚmgrs      rKrørø sš€ô c—i‘i¤Ô ,Ð,Ð ,ÜØ     ‰    ˜¨C×,<Ñ,<À4ô€Ið × "Ò "؏h‰h×јy°ZÐÓ@ˆØ×(Ñ(¨°3·8±8Ð(Ó<Ð<à×#Ñ#Ø K‰K s§{¡{¸zð$ó
ð    
racó—|j«}|j|||¬«}|jjdg«|_|S)an
    Unstack an ExtensionArray-backed Series.
 
    The ExtensionDtype is preserved.
 
    Parameters
    ----------
    series : Series
        A Series with an ExtensionArray for values
    level : Any
        The level name or number.
    fill_value : Any
        The user-level (not physical storage) fill value to use for
        missing values introduced by the reshape. Passed to
        ``series.values.take``.
    sort : bool
        Whether to sort the resulting MuliIndex levels
 
    Returns
    -------
    DataFrame
        Each column of the DataFrame will have the same dtype as
        the input Series.
    )r0r‰r,r)Úto_framer«r‘Ú_drop_level_numbers)Úseriesr0r‰r,Údfrïs      rKrürüsC€ð8
‰Ó    €BØ Z‰Z˜e°
ÀˆZÓ F€Fð—^‘^×7Ñ7¸¸Ó<€F„NØ €Mracó6—d„}|j\}}|jj|«}t|jt«rt ||||¬«St|j t«rþt|j j«}|j jD    cgc]}    |    j|«‘Œ}
}    ||j«\} } |j| «|
jtj| |«j««t|j j«} | j|jj «t    ||
| d¬«}nœt#t%||j |jf«Ž\}\}} |j|«tj| |«j«f}t    |||j j |jj gd¬«}|j&sµ|j(r©t|j*j,«}|d}t|t.«rZ|j1«}|j3|j5«Dcgc]\}}|j,‘Œc}}«}t7|||«}n5|j,j«}n|j,j«}|rt9|«}||}||}|j;||¬«Scc}    wcc}}w)zÀ
    Convert DataFrame to Series with multi-level Index. Columns become the
    second level of the resulting hierarchical index
 
    Returns
    -------
    stacked : Series or DataFrame
    có~—|jr |tjt|««fSt    |«\}}||fSrO)Ú    is_uniquer=r}rQr)r.r1Ú
categoriess   rKÚstack_factorizezstack.<locals>.stack_factorizeMs;€Ø ?Š?Øœ"Ÿ)™)¤C¨£JÓ/Ð/Ð /Ü3°EÓ:шˆzؘ5РРra)Ú    level_numÚdropnar,Frµr©r.)r”r‘r/r£rÚ_stack_multi_columnsr.r3r4r1r»r½r=r¾Úravelr6r§ÚzipÚmapr¢Ú_is_homogeneous_typeÚdtypesrþrr¤Ú_concat_same_typeÚitemsÚ"_reorder_for_extension_array_stackrÚ_constructor_sliced)Úframer0rr,rÚNÚKrrrÂrÃÚclevÚclabrÁr–r4Úilabr1rrpÚarrrjÚcolrŽr{s                         rKrúrúCs‡€ò!ð ;‰;D€A€qð— ‘ ×/Ñ/°Ó6€Iä%—-‘-¤Ô,Ü#Ø ˜Y¨v¸Dô
ð    
ô
E—K‘K¤Ô    ,ܘ%Ÿ+™+×,Ñ,Ó-ˆ
Ø.3¯k©k×.?Ñ.?Ö@ sS—Z‘Z •]Ð@ˆ    Ð@á$ U§]¡]Ó3‰
ˆˆdØ×ј$ÔØ×ÑœŸ™  qÓ)×/Ñ/Ó1Ô2䘟™×*Ñ*Ó+ˆ    Ø×јŸ™×+Ñ+Ô,ÜØ Y°iÐRWô
‰    ô #¤C¨¸%¿+¹+ÀuÇ}Á}Ð9UÓ$VÐWш‘ tØ— ‘ ˜A“¤§¡¨¨aÓ 0× 6Ñ 6Ó 8Ð8ˆÜØØØ—;‘;×#Ñ# U§]¡]×%7Ñ%7Ð8Ø"ô    
ˆ    ð ;Š;˜5×5Ò5ôe—l‘l×*Ñ*Ó+ˆØq‘    ˆä eœ^Ô ,Ø×,Ñ,Ó.ˆCØ×.Ñ.Ø+0¯;©;«=×9¡  C—“Ó9óˆJô<¸JÈÈ1ÓM‰JðŸ™×,Ñ,Ó.‰Jð—]‘]×(Ñ(Ó*ˆ
á ܐZÓ ˆØ Ñ%ˆ
ؘd‘Oˆ    à × $Ñ $ Z°yÐ $Ó AÐAùò_Aùó>:s Â(LÊL
c󂇗tˆfd„|D««r‰}|D]}t||||¬«}Œ|Std„|D««rj‰}|Dcgc]}‰jj|«‘Œ}}|r<|j    d«}t||||¬«}|Dcgc]}||kr|n|dz
‘Œ}}|rŒ<|St d«‚cc}wcc}w)Nc3óN•K—|]}|‰jjv–—Œy­wrO)r‘r6)rSr¿rs  €rKrUz!stack_multiple.<locals>.<genexpr>“s øèø€Ò
7¨#ˆ3%—-‘-×%Ñ%Ô %Ñ
7ùsƒ"%)rr,c3ó<K—|]}t|t«–—Œy­wrO)r£Úint)rSr¿s  rKrUz!stack_multiple.<locals>.<genexpr>™sèø€Ò 3 cŒZ˜œS× !Ñ 3ùs‚rr)zTlevel should contain all level names or all level numbers, not a mixture of the two.)r…rúr‘r/r8ry)rr0rr,rïr¿rXs`      rKÚstack_multipler+sìø€ô Ó
7°Ô
7Ô7؈Øò    BˆCܘ6 3¨v¸DÔA‰Fð    Bð2 €Mô+
Ñ 3¨UÔ 3Ô    3ðˆðBGÖG¸#—‘×0Ñ0°Õ5ÐGˆÐGáØ—)‘)˜A“,ˆCܘ6 3¨v¸DÔAˆFð8=Ö=°!˜!˜sš(‘Q¨¨A©Ñ-Ð=ˆEÐ=ò ð €Mô ð 1ó
ð    
ùòHùò>s Á"B7ÂB<c
óv—t|j«dkr,|jdj|jd¬«St    |jdd|j
dd«Dcgc]\}}|Dcgc]}|dk\r||nd‘Œc}‘Œ!}}}}t    |Ž}d„t j|«D«}t    |Ž}tjt    ||j«Dcgc]"\}}d|vrt||j¬«n|‘Œ$c}}|jdd¬«Scc}wcc}}}wcc}}w)    zBCreates a MultiIndex from the first N-1 levels of this MultiIndex.ršrr³Nr(c3ó&K—|]    \}}|–—Œ y­wrOrÑ)rSÚkeyrjs   rKrUz,_stack_multi_column_index.<locals>.<genexpr>½sèø€ÒA™V˜S !”SÑAùs‚ro©r6) rQr4r·r6rr1Ú    itertoolsÚgroupbyrÚ from_arraysrrp)    r‘r¿r1ÚcrYÚtuplesÚ unique_tuplesÚnew_levsÚnew_levs             rKÚ_stack_multi_column_indexr8±s6€ä
ˆ7>‰>Ó˜aÒØ~‰~˜aÑ ×(Ñ(¨g¯m©m¸AÑ.>Ð(Ó?Ð?ô˜gŸn™n¨S¨bÐ1°7·=±=ÀÀ"Ð3EÓF÷ ð á ˆCð.3Ö3¨1˜’6ˆˆQŠ˜tÑ    #Ô3ð €Dò ô $ˆZ€FÙA¤y×'8Ñ'8¸Ó'@ÔA€MܐMÐ"€Hô × !Ñ !ô!$ H¨g¯n©nÓ =÷    
ñ˜ð04¸7Ñ/BŒE' §¡Õ +ÈÑ Oó    
ð
m‰m˜C˜RРô  ðùò    4ùô ùó    
sÁ/ D.Á;D)ÂD.Ã+'D5
Ä)D.c ó —dd„}|jd¬«}|j}t|t«sJ‚||jdz
k7rP|}t ||jdz
«D])}|||«}    ||dz|«}
|j |    |
«}Œ+|x|_}|j«s*|r(|d|«} |j| d¬«}|j}tt|«}t|«} i} |jd}t|jd«}|rtj|«}|j!t#|«d«}tj$||«}t#|«}g}| D]ö}    |jj'|«}t|t,«s t#|«}n|j.|j0z
}||k7rk|j2dd…|j|f}|j%|jjd«|_|j5|¬«j6}n|j8dd…|f}t;|j<j?««}t|t@«r¼|jC«jE|jG«Dcgc]"\}}|jHjK|d¬    «‘Œ$c}}«}|jL\}}tjN||z«jQ||«jRjU«}|j%|«}n |j6}|jVdkDr|jU«}|| |<Œùt#|«dkDr| jY|«} t#|«}t|jZt«rqt]|jZj«} t]|jZj^«}!|jZjD"cgc]}"|"ja|«‘Œ}#}"nDtc|jZ«\}$}%|%g} |$ja|«g}#|jZjdg}!| j+|«|#j+tjf||««|!j+|jj^|«t| |#|!d¬
«}&|ji| |&| ¬ «}'|jjdkDrJ|jjk|g«j«}(|'jjm|(«s|'|(}'|r|'jodd ¬ «}'|'S#t($r|j+|«YŒ wxYwcc}}wcc}"w)Ncó@—||jvr|j|S|S)zì
        Logic for converting the level number to something we can safely pass
        to swaplevel.
 
        If `level_num` matches a column name return the name from
        position `level_num`, otherwise return `level_num`.
        r/)rr‘s  rKÚ_convert_level_numberz3_stack_multi_columns.<locals>._convert_level_numberÏs%€ð ˜Ÿ ™ Ñ %Ø—=‘= Ñ+Ð +àÐraFrØr)r)r0rfr()r‘rœrµ)r.r‘r…)rfÚhow)rr*r‘r)8rr‘r£rrÞrÝÚ    swaplevelÚ _is_lexsortedÚ
sort_indexrr8r4rr1r=r,r¸rQr<Úget_locÚKeyErrorr½ÚsliceÚstopÚstartÚlocÚreindexriÚilocr    rÚtolistrr¤rrrþr©r”r}rŸrùrr’Ú
differencer.r3r6r»rr§r¾rr
Úequalsr))rrrr,r;ÚthisÚmi_colsÚ roll_columnsrâÚlev1Úlev2Ú level_to_sortròÚnew_dataÚ
level_valsrÉÚlevel_vals_nanÚlevel_vals_usedÚlevsizeÚ    drop_colsr.rEÚ    slice_lenÚchunkÚ value_sliceÚsubsetrprjrTr r!ÚidxrrÁrÂrÃÚ    old_codesÚ
old_levelsr–rïÚdesired_columnss)                                         rKrrÌsÈ€ó ð :‰:˜5ˆ:Ó !€D؏l‰l€GÜ gœzÔ *Ð*Ð *ðG—O‘O aÑ'Ò'àˆ Üy '§/¡/°AÑ"5Ó6ò    >ˆAá(¨¨LÓ9ˆDÙ(¨¨Q©° Ó=ˆDØ'×1Ñ1°$¸Ó=‰Lð        >ð
".Ð-ˆŒ wà ×  Ñ  Ô "¡tñ.¨a°Ó9ˆ ؏‰ ]¸ˆÓ;ˆØ—,‘,ˆä”:˜wÓ'€GÜ+¨GÓ4€Kð€HØ—‘ Ñ#€JܘŸ™ rÑ*Ó+€KÙ Ü—g‘g˜kÓ*ˆ Ø×&Ñ&¤s¨:£¸Ó=€Nä—g‘g˜n¨kÓ:€Oܐ+Ó€GØ€IØó'$ˆð    Ø—,‘,×&Ñ& sÓ+ˆCô˜#œuÔ%ܘC›‰IàŸ™ 3§9¡9Ñ,ˆIà ˜Ò Ø—H‘HšQ § ¡ ¨SÑ 1Ð1Ñ2ˆEØ*×/Ñ/°· ± ×0CÑ0CÀBÑ0GÓHˆEŒMØŸ-™-°˜-Ó@×GÑGŠKà—Y‘Yšq #˜vÑ&ˆFÜ$ V§]¡]×%9Ñ%9Ó%;Ó<ˆEܘ%¤Ô0ð$×8Ñ8Ó:×LÑLØEKÇ\Á\Ã^×T¹T¸QÀQ—Y‘Y×%Ñ% e°%Ð%Õ8ÓTó ð—|‘|‘1Ü—i‘i  A¡Ó&×.Ñ.¨q°!Ó4×6Ñ6×<Ñ<Ó>Ø)×.Ñ.¨sÓ3‘ à$Ÿm™m à × Ñ ˜aÒ à%×+Ñ+Ó-ˆKà#ˆ‹ ðO'$ôR ˆ9ƒ~˜ÒØ!×,Ñ,¨YÓ7ˆ ä ˆD‹    €Aä$—*‘*œjÔ)ܘ$Ÿ*™*×+Ñ+Ó,ˆ
ܘŸ™×)Ñ)Ó*ˆ    Ø48·J±J×4DÑ4DÖE¨SS—Z‘Z Õ(ÐEˆ    ÑEä 7¸¿
¹
Ó Cш    :Ø \ˆ
Ø×%Ñ% gÓ.Ð/ˆ    Ø—Z‘Z—_‘_Ð%ˆ    à×ѐjÔ!Ø ×Ñ”R—W‘W˜[¨!Ó,Ô-Ø ×ѐU—]‘]×(Ñ(¨Ñ3Ô4䨠°)Èeô€Ið× Ñ  °    À;Ð Ó O€Fà ‡}}×јqÒ ØŸ-™-×;Ñ;¸Y¸KÓH×OÑOÓQˆØ~‰~×$Ñ$ _Ô5ؘOÑ,ˆFñØ—‘ A¨5Ó1ˆà €MøôSò    Ø × Ñ ˜SÔ !Ú ð    üó0Uùò,FsÅ1UÊ#'U; ÐVÕU8Õ7U8có¤—tj||z«j||«jj    «}|j |«S)aæ
    Re-orders the values when stacking multiple extension-arrays.
 
    The indirect stacking method used for EAs requires a followup
    take to get the order correct.
 
    Parameters
    ----------
    arr : ExtensionArray
    n_rows, n_columns : int
        The number of rows and columns in the original DataFrame.
 
    Returns
    -------
    taken : ExtensionArray
        The original `arr` with elements re-ordered appropriately
 
    Examples
    --------
    >>> arr = np.array(['a', 'b', 'c', 'd', 'e', 'f'])
    >>> _reorder_for_extension_array_stack(arr, 2, 3)
    array(['a', 'c', 'e', 'b', 'd', 'f'], dtype='<U1')
 
    >>> _reorder_for_extension_array_stack(arr, 3, 2)
    array(['a', 'd', 'b', 'e', 'c', 'f'], dtype='<U1')
    )r=r}rŸrùrr<)r%Ún_rowsÚ    n_columnsr[s    rKrrPsB€ôB )‰)F˜YÑ&Ó
/°    ¸6Ó
L€CØ 8‰8C‹=Ðrac    ó€ ‡‡—|jj«t|j«k7r td«‚t    ‰d¬«}|jj t |jj«Dcgc]    }|‰vsŒ|‘Œ c}ddd…«}t‰«dkDr'tj‰«}|j|«}n|}|j«}|j«}g}    |D]*}
t|j«dk(r|j«} nat‰«dk(r|
f}
t|
«Štˆˆfd„t |jj«D««} |jdd…| f} t‰«|jjkr!| jj |«| _nI|jdk(r:| j dk(rd| _n#t%t| j««| _|    j'| «Œ-t|    «dkDr/|j(s#t+|    «} t| «t|«z}nrt‰«|jjkr*|jj |«j«}ndg}t-||j.j0¬«} d}t‰«|jjkrI|jj |«j«}| jj3|«s| |} t5|j6t8«rL|j6j:}t=tj>|j6j@d|f««}n>tC|j6d    ¬
«\}}|g}t=tj>|d|f««}t5|t8«r'|j:}|jE«j@}n"|j«g}tC|d    ¬
«dg}|Dcgc]!}tjF|t|««‘Œ#}}t9||z||z|j6jHt=|jH«zd    ¬ «| _t|«}t|«}tjJ|«}tj>||z|«tjFtjJ|«|«z}| jM|«} | j d k(rd|jjt‰«k(rBt| j«dk(rtO| j6¬ «} n| jPdd…df} | j dk(rd| _| Scc}wcc}w)Nz8Columns with duplicate values are not supported in stackT)Úreverser(r)c3óR•K—|]}|‰vr t‰«n
td«–—Œ y­wrO)ÚnextrB)rSÚkÚgenr0s  €€rKrUzstack_v3.<locals>.<genexpr>’s,øèø€ò#àð %™Z”S”    ¬U°4«[Ó8ñ#ùsƒ$'r)r‘rpF)Úuse_na_sentinelrµršr))r‘ÚnuniquerQryÚsortedr
rÝrÞr=ÚargsortÚ_reorder_ilevelsrrÚiterrWrEr’r§rr½r¢rrrþrprJr£r.rr4r3r¾r1rÚdrop_duplicatesr»r6r}r<rrG)rr0Ú drop_levnumsrfÚ
stack_colsÚsorterÚordered_stack_colsÚstack_cols_uniqueÚordered_stack_cols_uniqueÚbufr[ràÚcolumn_indexerrïÚratioròr^Ú index_levelsÚ index_codesr1ÚuniquesÚ column_levelsÚ column_codesÚlen_dfÚ    n_uniquesr_Úidxsrgs `                         @rKÚstack_v3r€us•ù€Ø ‡}}×ÑÓ¤# e§m¡mÓ"4Ò4ÜÐSÓTÐTô˜%¨Ô.€LØ—‘×2Ñ2ܘ%Ÿ-™-×/Ñ/Ó0ÖCˆq°A¸U²NŠÒCÁDÀbÀDÑIó€Jô ˆ5ƒzA‚~ä—‘˜EÓ"ˆØ'×8Ñ8¸Ó@Ñà'Ðà"×)Ñ)Ó+ÐØ 2× 9Ñ 9Ó ;Ðð €CØ óˆÜ ˆu}‰}Ó  Ò "Ø—:‘:“<‰Dô5‹z˜QŠØfÜs“)ˆCÜ"ô#ä˜uŸ}™}×4Ñ4Ó5ô#óˆNð—9‘9šQ Ð.Ñ/ˆDä ˆu‹:˜Ÿ ™ ×-Ñ-Ò -ØŸ<™<×;Ñ;¸LÓIˆDLØ × Ñ  1Ò $؏y‰y˜AŠ~ؐ•    ä)¬#¨d¯l©lÓ*;Ó<” Ø 
‰
4Öð+ô0 ˆ3ƒx!‚|˜EŸKšKܘ“ˆÜF“ œs 5›zÑ)‰ô ˆu‹:˜Ÿ ™ ×-Ñ-Ò -àŸ-™-×;Ñ;¸LÓI×PÑPÓR‰Kà˜#ˆKÜ ;°e·m±m×6IÑ6IÔJˆØˆä
ˆ5ƒzE—M‘M×)Ñ)Ò)àŸ-™-×;Ñ;¸LÓI×PÑPÓRˆØ~‰~×$Ñ$ _Ô5ؘOÑ,ˆFô
%—+‘+œzÔ*Ø—{‘{×)Ñ)ˆ Üœ2Ÿ7™7 5§;¡;×#4Ñ#4°q¸%°jÓAÓB‰ ä" 5§;¡;ÀÔF‰ˆˆwؐyˆ Üœ2Ÿ7™7 5¨1¨e¨*Ó5Ó6ˆ ܐ*œjÔ)Ø*×1Ñ1ˆ Ø)×9Ñ9Ó;×AÑA‰ à+×2Ñ2Ó4Ð5ˆ Ü!Ð";ÈUÔSÐTUÑVÐWˆ Ø>JÖK°U”B—I‘I˜e¤S¨£ZÕ0ÐK€LÐKÜØ˜mÑ+ؘLÑ(؏k‰k×Ѥ$Ð'9×'?Ñ'?Ó"@Ñ@Øô    €F„Lô‹Z€FÜÐ-Ó.€I܏i‰i˜    Ó"€GÜ 7‰76˜GÑ# VÓ ,¬r¯y©y¼¿¹À6Ó9JÈIÓ/VÑ V€DØ [‰[˜Ó €Fð‡{{aÒ˜EŸM™M×1Ñ1´S¸³ZÒ?Ü ˆv~‰~Ó  !Ò #Ü &§,¡,Ô/‰Fà—[‘[¢ A Ñ&ˆFØ ‡{{aÒØˆŒ à €MùòC    DùòRLs    V6 V6Ñ&V;)NT)ràúSeries | DataFramer,rv)rÿrr,rv)rÿrr,rvrÊr)r rr,rvrÊr)r(TT)rrrrvr,rv)TT)r‘rrÊr)
rrrr*rrvr,rvrÊr)r%r#r`r*rar*rÊr#)rrr0z    list[int]rÊr)LÚ
__future__rr0ÚtypingrrrBÚnumpyr=Úpandas._libs.reshapeÚ_libsrŸrªÚ pandas.errorsrÚpandas.util._decoratorsrÚpandas.util._exceptionsrÚpandas.core.dtypes.castr    r
Úpandas.core.dtypes.commonr r r rÚpandas.core.dtypes.dtypesrÚpandas.core.dtypes.missingrÚpandas.core.algorithmsÚcoreÚ
algorithmsrgrrÚpandas.core.arrays.categoricalrÚpandas.core.constructionrÚpandas.core.framerÚpandas.core.indexes.apirrrÚpandas.core.reshape.concatrÚpandas.core.seriesrÚpandas.core.sortingrrrrrÚpandas._typingr r!r"Úpandas.core.arraysr#Úpandas.core.indexes.frozenr$r&rór«rørürúr+r8rrr€rÑrarKú<module>r›suðÝ"ã÷óãç)Ð)Ý,Ý2Ý4÷÷óõ 5Ý,ç&Ð&÷õCÝCÝ'÷ñõ
.Ý%÷õñ÷ñõ 2Ý5÷K
ñK
ð^
DHðXØ
ðXØ<@óXôv!
ðJ:>ð
Ø    ð
Ø26ð
àó
ð""Ø ð"Ø-1ð"àó"ôJJBôZóBð8NRðAØ ðAØ!$ðAØ37ðAØFJðAàóAðH"Ø    ð"Ø!$ð"Ø14ð"àó"ôJhra