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
U
¬ý°dÞã@sdZddlmZddlmZmZddlmZmZm    Z    ddl
Z
ddl Z ddl mZddlmZddlmZmZdd    lmZddlmmZdd
lmZer¾dd lmZdd lmZdd l m!Z!ddœdd„Z"ddddœdd„Z#ddœdd„Z$ddœdd„Z%e%dd„ƒZ&d d!„Z'd"d#„Z(dS)$z!
Core eval alignment algorithms.
é)Ú annotations)ÚpartialÚwraps)Ú TYPE_CHECKINGÚCallableÚSequenceN)ÚPerformanceWarning)Úfind_stack_level)Ú ABCDataFrameÚ    ABCSeries)Ú PandasObject)Úresult_type_many)ÚF)ÚNDFrame)ÚIndexz7tuple[partial | type[NDFrame], dict[str, Index] | None])ÚreturncCsRd}t|jtjƒr&ttj|jjd}n$t|jƒ}t|jdƒrJt    ||jj
ƒ}||fS)N)ÚdtypeÚaxes) Ú
isinstanceÚvalueÚnpÚndarrayrZ
asanyarrayrÚtypeÚhasattrÚ_zip_axes_from_typer)ÚtermrÚtyp©rúTd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/core/computation/align.pyÚ_align_core_single_unary_op&s
 rz type[NDFrame]zSequence[Index]zdict[str, Index])rÚnew_axesrcs‡fdd„t|jƒDƒS)Ncsi|]\}}|ˆ|“qSrr)Ú.0ÚiÚname©r rrÚ
<dictcomp>9sz'_zip_axes_from_type.<locals>.<dictcomp>)Ú    enumerateZ _AXIS_ORDERS)rr rr$rr6srÚboolcCstdd„|DƒƒS)zB
    Check a sequence of terms for instances of PandasObject.
    css|]}t|jtƒVqdS©N)rrr ©r!rrrrÚ    <genexpr>@sz&_any_pandas_objects.<locals>.<genexpr>)Úany©ÚtermsrrrÚ_any_pandas_objects<sr.zCallable[[F], F]cstˆƒ‡fdd„ƒ}|S)NcsBt|ƒdkrt|dƒSdd„|Dƒ}t|ƒs:t|ŽdfSˆ|ƒS)Nércss|] }|jVqdSr(©rr)rrrr*Jsz9_filter_special_cases.<locals>.wrapper.<locals>.<genexpr>)Úlenrr.r )r-Z term_values©ÚfrrÚwrapperDs    z&_filter_special_cases.<locals>.wrapper)r)r3r4rr2rÚ_filter_special_casesCs r5c    sdd„tˆƒDƒ}‡fdd„|Dƒ}ddlm}|tt||ƒƒƒ}ˆ| ¡j}|j}|j}t    |ƒ}|dk}    ‡fdd„|DƒD]n}
t
|
t ƒ} | o’|    } t|
jƒD]L\} }| r¼|d|
j }}n
| |}}||  |¡sž||j|d    d
||<qžq~| ¡D]\}}tt|ƒ|ƒD]ä\} }ˆ|j}t|d ƒrt
|t ƒo>|dk}|rR||dn|}t    |j| ƒ}t    |ƒ}t tdt||ƒƒ¡}|dkrÎ|d krÎd | ›dtˆ|jƒ›d|d›d}tj|ttƒdt|j|| dd}ˆ| |ƒ¡qˆ| ˆ|jj¡qö|t ||ƒfS)NcSs g|]\}}t|jdƒr|‘qS)r)rr)r!r"rrrrÚ
<listcomp>Ws z_align_core.<locals>.<listcomp>csg|]}ˆ|jj‘qSr)rÚndim©r!r"r,rrr6Xsr)ÚSeriesr/c3s|]}ˆ|jVqdSr(r0r8r,rrr*esz_align_core.<locals>.<genexpr>Úouter)ÚhowÚreindexi'zAlignment difference on axis z. is larger than an order of magnitude on term z, by more than z.4gz; performance may suffer.)ÚcategoryÚ
stacklevelF)ÚaxisÚcopy)!r&Zpandasr9ÚdictÚzipZidxmaxrZ _constructorrr1rr ÚindexÚis_ÚjoinÚitemsÚrangerrÚlog10ÚmaxÚabsÚreprr#ÚwarningsÚwarnrr    rr<ÚupdateÚvaluesr)r-Z
term_indexZ    term_dimsr9ZndimsZbiggestrrZnaxesZgt_than_one_axisrZ    is_seriesZis_series_and_gt_one_axisr?rFZaxZitmr"r7ZtiZ    transposeZ    reindexerZterm_axis_sizeZreindexer_sizeÚordmÚwr3rr,rÚ _align_coreUsN 
 
 
 "ÿÿrRcCs¦ztt |¡ƒ}WnTtk
rft|jttfƒrRt|jƒ}|t    ||jj
ƒfYSt   |j¡dfYSXt dd„|Dƒƒr’tdd„|DƒŽjdfSt|ƒ\}}||fS)z
    Align a set of terms.
    Ncss|] }|jVqdSr()Z    is_scalarr)rrrr* szalign_terms.<locals>.<genexpr>css|] }|jVqdSr(r0r)rrrr*¡s)ÚlistÚcomÚflattenÚ    TypeErrorrrr r
rrrrÚ result_typeÚallr rR)r-rrrrrÚ align_terms‘s
 rYcCsÊz
|j}Wntk
rYnXt |j|¡}t|tƒsVt|tƒrV||fd|i|—ŽSt    |dƒr€|tj
kr€|tj
kr€| |¡}nF||ƒ  |¡}t |j ƒdkrÆt |ƒdkrÆt|tjƒsÆt |g¡  |¡}|S)a°
    Reconstruct an object given its type, raw value, and possibly empty
    (None) axes.
 
    Parameters
    ----------
    typ : object
        A type
    obj : object
        The value to use in the type constructor
    axes : dict
        The axes to use to construct the resulting pandas object
 
    Returns
    -------
    ret : typ
        An object of type ``typ`` with the value `obj` and possible axes
        `axes`.
    rrr/)rÚAttributeErrorrrWrrrÚ
issubclassr rZbool_Zastyper1ÚshaperÚarray)rÚobjrrZres_tZ    ret_valuerrrÚreconstruct_object¨s$
  ÿ
þ
ýr_))Ú__doc__Ú
__future__rÚ    functoolsrrÚtypingrrrrLÚnumpyrZ pandas.errorsrZpandas.util._exceptionsr    Zpandas.core.dtypes.genericr
r Zpandas.core.baser Zpandas.core.commonÚcoreÚcommonrTZpandas.core.computation.commonr Zpandas._typingrZpandas.core.genericrZpandas.core.indexes.apirrrr.r5rRrYr_rrrrÚ<module>s.        
;