§
    	�’jÁe ã                  óÞ  — d dl mZ d dlmZmZmZ d dlZd dlmZm	Z	m
Z
mZmZmZmZ d dlZd dlZd dlmZ d dlmZmZmZ d dlmZmZ d dlmZ d d	lm Z m!Z! d d
l"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+ d dl,m-Z-m.Z.m/Z/ d dl0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7 d dl8m9Z9m:Z: d dl;m<c m=Z d dl>m?Z? d dl@mAZA d dlBmCZC d dlDmEZEmFZF d dlGmHZH d dlImJZJmKZKmLZL d dlMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZU d dlVmWZWmXZX erd dlmYZY d dlZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z` d dlambZb dVd!„ZcdWd%„Zd G d&„ d'eC¦  «        Ze G d(„ d)ejf        ee¦  «        Zf G d*„ d+ee¦  «        Zg	 	 dXdYd4„ZhdZd9„Zi	 d[d\dA„Zjd]dE„Zkd^dF„Zld_dG„Zmd`dH„ZndadJ„ZodbdM„ZpdcdR„ZqdddU„ZrdS )eé    )Úannotations)ÚCallableÚHashableÚSequenceN)ÚTYPE_CHECKINGÚAnyÚLiteralÚNoReturnÚSelfÚcastÚfinal)Ú
get_option)ÚalgosÚ	internalsÚlib)ÚBlockPlacementÚBlockValuesRefs)Ú	Timestamp)ÚAbstractMethodErrorÚPerformanceWarning)Úcache_readonly)Úfind_stack_level)Úvalidate_bool_kwarg)Úfind_common_typeÚinfer_dtype_from_scalarÚnp_can_hold_element)Úensure_platform_intÚis_1d_only_ea_dtypeÚis_list_like)ÚCategoricalDtypeÚDatetimeTZDtypeÚExtensionDtypeÚSparseDtype)ÚABCDataFrameÚ	ABCSeries)Úarray_equalsÚisna)ÚDatetimeArray)ÚNDArrayBackedExtensionArray)ÚPandasObject)Úensure_wrapped_if_datetimelikeÚextract_array)Úmaybe_convert_indices)ÚIndexÚdefault_indexÚensure_index)ÚBlockÚ
NumpyBlockÚensure_block_shapeÚextend_blocksÚget_block_typeÚmaybe_coerce_valuesÚ	new_blockÚnew_block_2d)Úblockwise_allÚoperate_blockwise)Ú	Generator)Ú	ArrayLikeÚAxisIntÚDtypeObjÚQuantileInterpolationÚShapeÚnpt)ÚExtensionArrayÚdtypesúlist[DtypeObj]ÚreturnúDtypeObj | Nonec                óB   — t          | ¦  «        sdS t          | ¦  «        S )zà
    Find the common dtype for `blocks`.

    Parameters
    ----------
    blocks : List[DtypeObj]

    Returns
    -------
    dtype : np.dtype, ExtensionDtype, or None
        None is returned when `blocks` is empty.
    N)Úlenr   )rC   s    úLC:\Projects\DSCons\.venv\Lib\site-packages\pandas\core\internals\managers.pyÚinterleaved_dtyperJ   o   s%   € õ ˆv‰;Œ;ð Øˆtå˜FÑ#Ô#Ð#ó    Údtyper>   únp.dtypec                ó*  — t          | t          ¦  «        r"| j        } t          t          j        | ¦  «        } n[t          | t          ¦  «        rt	          j        d¦  «        } n1| t	          j        t          ¦  «        k    rt	          j        d¦  «        } | S )NÚobject)Ú
isinstancer#   Úsubtyper   ÚnprL   r"   Ústr©rL   s    rI   Úensure_np_dtyperU   ‚   sz   € õ �%�Ñ%Ô%ð #Ø”ˆÝ•R”X˜uÑ%Ô%ˆˆÝ	�E�>Ñ	*Ô	*ð #Ý”˜Ñ"Ô"ˆˆØ	•"”(�3‘-”-Ò	Ð	Ý”˜Ñ"Ô"ˆØ€LrK   c                  óä  — e Zd ZU dZdZded<   ded<   ded<   ded	<   ed‡d„¦   «         Zded<   ded<   dˆd‰d„Ze	d‡d„¦   «         Z
edŠd„¦   «         Zed‹d„¦   «         ZedŒd„¦   «         ZedŒd„¦   «         Zd�dŽd„Zd�d„Zd�d#„Ze	d�d$„¦   «         Zed�d%„¦   «         Zed‘d&„¦   «         Zd’d(„Zd“d*„Zd”d,„Zd•d-„Zd–d/„Zd–d0„Zed—d2„¦   «         Zd˜d4„Zd™d6„Ze	dšd8„¦   «         Z	 d�d›d;„Z e	dŽd<„¦   «         Z!e	dœd@„¦   «         Z"e	d�dB„¦   «         Z#e	dˆd�dC„¦   «         Z$e	dždE„¦   «         Z%e	dŸdF„¦   «         Z&e	dŽdG„¦   «         Z'e		 	 d d¡dM„¦   «         Z(dŸdN„Z)dŸdO„Z*d¢dQ„Z+dŽdR„Z,d£dT„Z-d¤d¥dW„Z.dŽdX„Z/dY„ Z0dZdd[œd¦d]„Z1ed�d^„¦   «         Z2ed�d_„¦   «         Z3d§db„Z4d¨dd„Z5dŽde„Z6dŽdf„Z7d�d©di„Z8ed‡dj„¦   «         Z9dªdl„Z:d�dm„Z;dŽdn„Z<d«do„Z=e		 	 d¬d­dr„¦   «         Z>	 	 	 d®dHdsœd¯dy„Z?e@jA        dHfdHdHdzœd°d„ZB	 d¬d±dƒ„ZC	 	 d²d³d†„ZDdS )´ÚBaseBlockManagera¡  
    Core internal data structure to implement DataFrame, Series, etc.

    Manage a bunch of labeled 2D mixed-type ndarrays. Essentially it's a
    lightweight blocked set of labeled data to be manipulated by the DataFrame
    public API class

    Attributes
    ----------
    shape
    ndim
    axes
    values
    items

    Methods
    -------
    set_axis(axis, new_labels)
    copy(deep=True)

    get_dtypes

    apply(func, axes, block_filter_fn)

    get_bool_data
    get_numeric_data

    get_slice(slice_like, axis)
    get(label)
    iget(loc)

    take(indexer, axis)
    reindex_axis(new_labels, axis)
    reindex_indexer(new_labels, indexer, axis)

    delete(label)
    insert(loc, label, value)
    set(label, value)

    Parameters
    ----------
    blocks: Sequence of Block
    axes: Sequence of Index
    verify_integrity: bool, default True

    Notes
    -----
    This is *not* a public API class
    © únpt.NDArray[np.intp]Ú_blknosÚ_blklocsútuple[Block, ...]Úblocksúlist[Index]ÚaxesrE   Úintc                ó   — t           ‚©N©ÚNotImplementedError©Úselfs    rI   ÚndimzBaseBlockManager.ndimÉ   ó   € å!Ð!rK   ÚboolÚ_known_consolidatedÚ_is_consolidatedTÚverify_integrityÚNonec                ó   — t           ‚rb   rc   )rf   r]   r_   rl   s       rI   Ú__init__zBaseBlockManager.__init__Ð   s   € Ý!Ð!rK   c                ó*   — t          | j        ¦  «        S rb   )rH   Úitemsre   s    rI   Ú__len__zBaseBlockManager.__len__Ó   s   € å�4”:‰ŒÐrK   r@   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S rb   ©rH   ©Ú.0Úaxs     rI   ú	<genexpr>z)BaseBlockManager.shape.<locals>.<genexpr>Ù   s(   è è € Ð1Ð1 •S˜‘W”WÐ1Ð1Ð1Ð1Ð1Ð1rK   )Útupler_   re   s    rI   ÚshapezBaseBlockManager.shape×   s!   € åÐ1Ð1 t¤yÐ1Ñ1Ô1Ñ1Ô1Ð1rK   úlist[Block]r   c                ó   — t           ‚rb   rc   ©Úclsr]   r_   s      rI   Úfrom_blockszBaseBlockManager.from_blocksÛ   rh   rK   c                óF   — | j         €|                      ¦   «          | j         S )a
  
        Suppose we want to find the array corresponding to our i'th column.

        blknos[i] identifies the block from self.blocks that contains this column.

        blklocs[i] identifies the column of interest within
        self.blocks[self.blknos[i]]
        )rZ   Ú_rebuild_blknos_and_blklocsre   s    rI   ÚblknoszBaseBlockManager.blknosß   s&   € ð Œ<Ðà×,Ò,Ñ.Ô.Ð.àŒ|ÐrK   c                óF   — | j         €|                      ¦   «          | j         S )z$
        See blknos.__doc__
        )r[   r‚   re   s    rI   ÚblklocszBaseBlockManager.blklocsï   s&   € ð
 Œ=Ð à×,Ò,Ñ.Ô.Ð.àŒ}ÐrK   Nc                óz  — |€t          d¦  «        g| j        dd…         ¢}| j        dk    rkt          | t          ¦  «        sJ ‚| j        d         }|j        dd…         }t          t          dd¦  «        ¦  «        }| 	                    ||¬¦  «        }|g}ng }t          | ¦  «                             ||¦  «        S )z9return an empty BlockManager with the items axis of len 0Nr   é   ©Ú	placement)r/   r_   rg   rP   ÚSingleBlockManagerr]   Úvaluesr   ÚsliceÚmake_block_same_classÚtyper€   )rf   r_   ÚblkÚarrÚbpÚnbr]   s          rI   Ú
make_emptyzBaseBlockManager.make_emptyú   s»   € àˆ<å! !Ñ$Ô$Ð5 t¤y°°°¤}Ð5ˆDð Œ9˜Š>ˆ>Ý˜dÕ$6Ñ7Ô7Ð7Ð7Ð7Ø”+˜a”.ˆCØ”*˜R˜a˜R”.ˆCÝ¥ a¨¡¤Ñ,Ô,ˆBØ×*Ò*¨3¸"Ð*Ñ=Ô=ˆBØ�TˆFˆFàˆFÝ�D‰zŒz×%Ò% f¨dÑ3Ô3Ð3rK   c                ó   — dS ©NTrX   re   s    rI   Ú__bool__zBaseBlockManager.__bool__  ó   € ØˆtrK   Úaxisr=   Ú
new_labelsr.   c                óF   — |                       ||¦  «         || j        |<   d S rb   )Ú_validate_set_axisr_   )rf   r˜   r™   s      rI   Úset_axiszBaseBlockManager.set_axis  s'   € à×Ò  jÑ1Ô1Ð1Ø$ˆŒ	�$‰ˆˆrK   c                óÐ   — t          | j        |         ¦  «        }t          |¦  «        }|dk    rt          | j        ¦  «        dk    rd S ||k    rt          d|› d|› d�¦  «        ‚d S )Nr‡   r   z#Length mismatch: Expected axis has z elements, new values have z	 elements)rH   r_   rq   Ú
ValueError)rf   r˜   r™   Úold_lenÚnew_lens        rI   r›   z#BaseBlockManager._validate_set_axis  sŒ   € õ �d”i ”oÑ&Ô&ˆÝ�j‘/”/ˆà�1Š9ˆ9�˜TœZ™œ¨AÒ-Ð-ð ˆDà˜ÒÐÝð2°gð 2ð 2Ø&ð2ð 2ð 2ñô ð ð  ÐrK   c                ó2   — t          | j        ¦  «        dk    S ©Nr‡   ©rH   r]   re   s    rI   Úis_single_blockz BaseBlockManager.is_single_block%  s   € õ �4”;ÑÔ 1Ò$Ð$rK   c                ó   — | j         d         S ©Nr   ©r_   re   s    rI   rq   zBaseBlockManager.items*  ó   € àŒy˜Œ|ÐrK   Úic                óF   — | j         |         }|                      |¦  «        S )ú¾
        Check for column `i` if it has references.
        (whether it references another array or is itself being referenced)
        Returns True if the column has no references.
        )rƒ   Ú_has_no_reference_block)rf   r©   Úblknos      rI   Ú_has_no_referencez"BaseBlockManager._has_no_reference.  s#   € ð ”˜A”ˆØ×+Ò+¨EÑ2Ô2Ð2rK   r­   c                óL   — | j         |         j                             ¦   «          S )z¼
        Check for block `i` if it has references.
        (whether it references another array or is itself being referenced)
        Returns True if the block has no references.
        ©r]   ÚrefsÚhas_reference)rf   r­   s     rI   r¬   z(BaseBlockManager._has_no_reference_block7  s#   € ð ”;˜uÔ%Ô*×8Ò8Ñ:Ô:Ð:Ð:rK   Úmgrc                óô   — t          | j        ¦  «        t          |j        ¦  «        k    rdS t          | j        ¦  «        D ]6\  }}|j        |         j        |_        |j                             |¦  «         Œ7dS )z†
        Adds the references from one manager to another. We assume that both
        managers have the same block structure.
        N)rH   r]   Ú	enumerater±   Úadd_reference)rf   r³   r©   r�   s       rI   Úadd_referenceszBaseBlockManager.add_references?  sv   € õ
 ˆtŒ{ÑÔ�s 3¤:™œÒ.Ð.àˆFÝ ¤Ñ,Ô,ð 	(ð 	(‰FˆAˆsØ”z !”}Ô)ˆCŒHØŒH×"Ò" 3Ñ'Ô'Ð'Ð'ð	(ð 	(rK   c                ó~   ‡— | j         |         Št          ˆfd„|j         |         j        j        D ¦   «         ¦  «        S )zv
        Checks if two blocks from two different block managers reference the
        same underlying values.
        c              3  ó0   •K  — | ]}‰ |¦   «         u V — Œd S rb   rX   )rw   Úrefr�   s     €rI   ry   z:BaseBlockManager.references_same_values.<locals>.<genexpr>Q  s-   øè è € ÐTÐT C�3˜#˜#™%œ%�<ÐTÐTÐTÐTÐTÐTrK   )r]   Úanyr±   Úreferenced_blocks)rf   r³   r­   r�   s      @rI   Úreferences_same_valuesz'BaseBlockManager.references_same_valuesK  sA   ø€ ð
 Œk˜%Ô ˆÝÐTÐTÐTÐT¨3¬:°eÔ+<Ô+AÔ+SÐTÑTÔTÑTÔTÐTrK   únpt.NDArray[np.object_]c                óz   — t          j        t          j        d„ | j        D ¦   «         t
          ¬¦  «        ¦  «        S )Nc                ó   — g | ]	}|j         ‘Œ
S rX   rT   ©rw   r�   s     rI   ú
<listcomp>z6BaseBlockManager.get_unique_dtypes.<locals>.<listcomp>T  s   € Ð%GÐ%GÐ%G°C c¤iÐ%GÐ%GÐ%GrK   rT   )r   ÚuniquerR   Úarrayr]   rO   re   s    rI   Úget_unique_dtypesz"BaseBlockManager.get_unique_dtypesS  s2   € ÝŒ|�BœHÐ%GÐ%G¸4¼;Ð%GÑ%GÔ%GÍvÐVÑVÔVÑWÔWÐWrK   c                óŠ   — t          j        d„ | j        D ¦   «         t          ¬¦  «        }|                     | j        ¦  «        S )Nc                ó   — g | ]	}|j         ‘Œ
S rX   rT   rÁ   s     rI   rÂ   z/BaseBlockManager.get_dtypes.<locals>.<listcomp>W  s   € Ð<Ð<Ð<¨˜3œ9Ð<Ð<Ð<rK   rT   )rR   rÄ   r]   rO   Útakerƒ   ©rf   rC   s     rI   Ú
get_dtypeszBaseBlockManager.get_dtypesV  s;   € Ý”Ð<Ð<°´Ð<Ñ<Ô<ÅFÐKÑKÔKˆØ�{Š{˜4œ;Ñ'Ô'Ð'rK   úlist[ArrayLike]c                ó$   — d„ | j         D ¦   «         S )aµ  
        Quick access to the backing arrays of the Blocks.

        Only for compatibility with ArrayManager for testing convenience.
        Not to be used in actual code, and return value is not the same as the
        ArrayManager method (list of 1D arrays vs iterator of 2D ndarrays / 1D EAs).

        Warning! The returned arrays don't handle Copy-on-Write, so this should
        be used with caution (only in read-mode).
        c                ó   — g | ]	}|j         ‘Œ
S rX   ©r‹   rÁ   s     rI   rÂ   z+BaseBlockManager.arrays.<locals>.<listcomp>h  s   € Ð2Ð2Ð2˜s�”
Ð2Ð2Ð2rK   ©r]   re   s    rI   ÚarrayszBaseBlockManager.arraysZ  s   € ð 3Ð2 d¤kÐ2Ñ2Ô2Ð2rK   rS   c                óº   — t          | ¦  «        j        }t          | j        ¦  «        D ]\  }}|dk    r	|d|› �z  }Œ|d|› d|› �z  }Œ | j        D ]
}|d|› �z  }Œ|S )Nr   z
Items: z
Axis z: ú
)rŽ   Ú__name__rµ   r_   r]   )rf   Úoutputr©   rx   Úblocks        rI   Ú__repr__zBaseBlockManager.__repr__j  s�   € Ý�d‘”Ô$ˆÝ˜tœyÑ)Ô)ð 	.ð 	.‰EˆAˆrØ�AŠvˆvØÐ* bÐ*Ð*Ñ*��àÐ- AÐ-Ð-¨Ð-Ð-Ñ-��à”[ð 	#ð 	#ˆEØ�l˜5�l�lÑ"ˆFˆFØˆrK   Úotherc                ó    — t          | ¦  «        ‚)z‘
        To be implemented by the subclasses. Only check the column values
        assuming shape and indexes have already been checked.
        )r   ©rf   r×   s     rI   Ú_equal_valueszBaseBlockManager._equal_valuesv  s   € õ
 " $Ñ'Ô'Ð'rK   rO   c                ó   — t          |t          | ¦  «        ¦  «        sdS | j        |j        }}t          |¦  «        t          |¦  «        k    rdS t	          d„ t          ||d¬¦  «        D ¦   «         ¦  «        sdS |                      |¦  «        S )z5
        Implementation for DataFrame.equals
        Fc              3  óF   K  — | ]\  }}|                      |¦  «        V — Œd S rb   )Úequals)rw   Úax1Úax2s      rI   ry   z*BaseBlockManager.equals.<locals>.<genexpr>ˆ  sA   è è € ð 
ð 
Ù (  SˆC�JŠJ�s‰OŒOð
ð 
ð 
ð 
ð 
ð 
rK   T©Ústrict)rP   rŽ   r_   rH   ÚallÚziprÚ   )rf   r×   Ú	self_axesÚ
other_axess       rI   rÝ   zBaseBlockManager.equals}  s¢   € õ
 ˜%¥ d¡¤Ñ,Ô,ð 	Ø�5à $¤	¨5¬:�:ˆ	Ýˆy‰>Œ>�S ™_œ_Ò,Ð,Ø�5Ýð 
ð 
Ý,/°	¸:ÈdÐ,SÑ,SÔ,Sð
ñ 
ô 
ñ 
ô 
ð 	ð �5à×!Ò! %Ñ(Ô(Ð(rK   Ú
align_keysúlist[str] | Nonec                ót  ‡— d‰vsJ ‚|pg }g }ˆfd„|D ¦   «         }| j         D ]â}|rš|                     ¦   «         D ]…\  }}t          |t          t          f¦  «        rO|j        dk    r |j        |j        j                 j	        ‰|<   ŒL|j        dd…|j        j        f         j	        ‰|<   Œp||j        j                 ‰|<   Œ†t          |¦  «        r |j        |fi ‰¤Ž}	n t          ||¦  «        di ‰¤Ž}	t          |	|¦  «        }Œãt          | ¦  «                             |d„ | j        D ¦   «         ¦  «        }
|
S )ab  
        Iterate over the blocks, collect and create a new BlockManager.

        Parameters
        ----------
        f : str or callable
            Name of the Block method to apply.
        align_keys: List[str] or None, default None
        **kwargs
            Keywords to pass to `f`

        Returns
        -------
        BlockManager
        Úfilterc                ó"   •— i | ]}|‰|         “ŒS rX   rX   )rw   ÚkÚkwargss     €rI   ú
<dictcomp>z*BaseBlockManager.apply.<locals>.<dictcomp>ª  s   ø€ Ð9Ð9Ð9¨˜˜6 !œ9Ð9Ð9Ð9rK   r‡   Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS rX   ©Úviewrv   s     rI   rÂ   z*BaseBlockManager.apply.<locals>.<listcomp>À  s    € Ð4SÐ4SÐ4SÀ2°R·W²W±Y´YÐ4SÐ4SÐ4SrK   rX   )r]   rq   rP   r%   r$   rg   ÚilocÚmgr_locsÚindexerÚ_valuesÚcallableÚapplyÚgetattrr4   rŽ   r€   r_   )rf   Úfræ   rì   Úresult_blocksÚaligned_argsÚbrë   ÚobjÚappliedÚouts      `       rI   rö   zBaseBlockManager.apply�  sz  ø€ ð* ˜vÐ%Ð%Ð%Ð%àÐ% 2ˆ
Ø%'ˆð :Ð9Ð9Ð9¨jÐ9Ñ9Ô9ˆà”ð 	Bð 	BˆAØð <Ø*×0Ò0Ñ2Ô2ð 
<ð 
<‘F�A�sÝ! #­	µ<Ð'@ÑAÔAð 	<ð œ8 qš=˜=Ø(+¬°´Ô1CÔ(DÔ(L˜F 1™I˜Ià(+¬°°°°A´JÔ4FÐ1FÔ(GÔ(O˜F 1™I˜Ið %(¨¬
Ô(:Ô$;˜˜q™	˜	å˜‰{Œ{ð 2Ø!˜!œ' !Ð.Ð. vÐ.Ð.��à'�' ! Q™-œ-Ð1Ð1¨&Ð1Ð1�Ý)¨'°=ÑAÔAˆMˆMå�4‰jŒj×$Ò$ ]Ð4SÐ4SÈÌÐ4SÑ4SÔ4SÑTÔTˆØˆ
rK   c                ó0   — |                       d|¬¦  «        S )Nrö   )Úfunc©rö   )rf   r   s     rI   r'   zBaseBlockManager.isnaÃ  s   € à�zŠz˜'¨ˆzÑ-Ô-Ð-rK   Úlimitú
int | NoneÚinplacec                ód   — |�t          j        d |¬¦  «        }|                      d|||¬¦  «        S )N)r  Úfillna)Úvaluer  r  )ÚlibalgosÚvalidate_limitrö   )rf   r  r  r  s       rI   r  zBaseBlockManager.fillnaÇ  sD   € àÐåÔ+¨D¸Ð>Ñ>Ô>ˆEà�zŠzØØØØð	 ñ 
ô 
ð 	
rK   Úalignc                ój   — |rddg}ndg}t          |d¬¦  «        }|                      d|||¬¦  «        S )Nr×   ÚcondT©Úextract_numpyÚwhere)ræ   r×   r  ©r,   rö   )rf   r×   r  r
  ræ   s        rI   r  zBaseBlockManager.whereÔ  sV   € àð 	=Ø! 6Ð*ˆJˆJà ˜ˆJÝ! %°tÐ<Ñ<Ô<ˆEà�zŠzØØ!ØØð	 ñ 
ô 
ð 	
rK   c                ój   — |rddg}ndg}t          |d¬¦  «        }|                      d|||¬¦  «        S )NÚnewÚmaskTr  Úputmask)ræ   r  r  r  )rf   r  r  r
  ræ   s        rI   r  zBaseBlockManager.putmaskã  sU   € àð 	9Ø ˜ˆJˆJà ˜ˆJÝ °4Ð8Ñ8Ô8ˆCà�zŠzØØ!ØØð	 ñ 
ô 
ð 	
rK   Údecimalsc                ó0   — |                       d|¬¦  «        S )NÚround)r  r  )rf   r  s     rI   r  zBaseBlockManager.roundò  s   € à�zŠz˜'¨HˆzÑ5Ô5Ð5rK   c                ó¬   — t          |d¦  «        }t          j        |¦  «        rJ ‚t          j        |¦  «        rJ ‚|                      d|||¬¦  «        S )Nr  Úreplace)Ú
to_replacer  r  )r   r   r   rö   )rf   r  r  r  s       rI   r  zBaseBlockManager.replaceö  sf   € å% g¨yÑ9Ô9ˆåÔ# JÑ/Ô/Ð/Ð/Ð/ÝÔ# EÑ*Ô*Ð*Ð*Ð*Ø�zŠzØØ!ØØð	 ñ 
ô 
ð 	
rK   c                ó   —  | j         di |¤ŽS )NÚ_replace_regex)r  r  ©rf   rì   s     rI   Úreplace_regexzBaseBlockManager.replace_regex  s   € àˆtŒzÐ5Ð5¨fÐ5Ð5Ð5rK   FÚsrc_listú	list[Any]Ú	dest_listÚregexc                ó‚   — t          |d¦  «        }|                      d||||¬¦  «        }|                     ¦   «          |S )zdo a list replacer  Úreplace_list)r  r!  r  r"  )r   rö   Ú_consolidate_inplace)rf   r  r!  r  r"  Úbms         rI   r$  zBaseBlockManager.replace_list  sS   € õ & g¨yÑ9Ô9ˆà�ZŠZØØØØØð ñ 
ô 
ˆð 	×ÒÑ!Ô!Ð!Øˆ	rK   c                ó    —  | j         dd|i|¤ŽS )NÚinterpolater  )r(  r  ©rf   r  rì   s      rI   r(  zBaseBlockManager.interpolate  s   € ØˆtŒzÐCÐC°ÐC¸FÐCÐCÐCrK   c                ó    —  | j         dd|i|¤ŽS )NÚpad_or_backfillr  )r+  r  r)  s      rI   r+  z BaseBlockManager.pad_or_backfill  s   € ØˆtŒzÐGÐG°WÐGÀÐGÐGÐGrK   Úperiodsc                óR   — |t           j        u rd }|                      d||¬¦  «        S )NÚshift)r,  Ú
fill_value)r   Ú
no_defaultrö   )rf   r,  r/  s      rI   r.  zBaseBlockManager.shift"  s,   € Ø�œÐ'Ð'ØˆJà�zŠz˜'¨7¸zˆzÑJÔJÐJrK   c                óÐ  — t          |t          j        ¦  «        r'|j        | j        k    rt	          d| j        › �¦  «        ‚|                      d¦  «        �sx| j        dk    �rVt          |t          ¦  «        �r@| j        |d                  }t          |¦  «        r"|j        dk    rt          j	        |d¬¦  «        }nt          |¦  «        s|g}t          |¦  «        dk    r|                      d¬¦  «        S | j        d         j        }|j        dk    �r£t          j        |d¬	¦  «        \  }}||         }|                      d||¦  «         t!          |¦  «        }t#          j        |d         ¦  «        rd}nGt          |¦  «        dk    r2t#          j        |t          |¦  «        ¦  «        rt)          d
¦  «        }n|}||d<   |d         }t          |t          j        ¦  «        r2t          |t          j        ¦  «        r|j        dk    r|d
d
…d
f         }n;t          |t          j        ¦  «        r!|j        dk    rt          j	        |d¬¦  «        }t          |t          j        ¦  «        rt          |¦  «        dk    r| S ||d<   | j        d                              t          |¦  «        |¦  «         | S |                      d¬¦  «        } |                      d||¬¦  «        S )zi
        Set values with indexer.

        For SingleBlockManager, this backs s[indexer] = value
        zCannot set values with ndim > r   é   r‡   ©r˜   F©ÚdeepT)Úreturn_inverseNÚsetitem)ró   r  )rP   rR   Úndarrayrg   rž   r®   rz   r…   r   ÚsqueezerH   Úcopyr]   r‹   rÃ   Ú_iset_split_blockÚlistr   Ú
is_integerÚis_range_indexerrŒ   r7  rö   )rf   ró   r  Úblk_locr‹   ÚinverseÚcol_indexerÚrow_indexers           rI   r7  zBaseBlockManager.setitem(  sÙ  € õ �g�rœzÑ*Ô*ð 	K¨w¬|¸d¼iÒ/GÐ/GÝÐI¸d¼iÐIÐIÑJÔJÐJà×%Ò% aÑ(Ô(ñ 9	(ð Œy˜AŠ~‰~¥*¨WµeÑ"<Ô"<‰~Øœ, w¨q¤zÔ2�Ý Ñ(Ô(ð (¨W¬\¸QÒ->Ð->Ý œj¨°qÐ9Ñ9Ô9�G�GÝ% gÑ.Ô.ð (à&˜i�GÝ�w‘<”< 1Ò$Ð$ØŸ9š9¨%˜9Ñ0Ô0Ð0àœ QœÔ.�Ø”; !Ò#Ñ#õ (*¤y°ÈÐ'NÑ'NÔ'NÑ$�G˜WØ# Gœ_�Fà×*Ò*Ø˜7 Fñô ð õ # 7™mœm�Gå”~ g¨a¤jÑ1Ô1ð .Ø&'˜˜Ý˜W™œ¨Ò)Ð)­cÔ.BØ¥ W¡¤ñ/ô /Ð)õ ',¨D¡k¤k˜˜à&-˜Ø!,�G˜A‘Jà")¨!¤*�KÝ! +­r¬zÑ:Ô:ð 	Få& {µB´JÑ?Ô?ð?à +Ô 0°AÒ 5Ð 5ð +6°a°a°a¸°gÔ*>˜KøÝ# Kµ´Ñ<Ô<ð FÀÔAQÐUVÒAVÐAVå&(¤j°À1Ð&EÑ&EÔ&E˜Ý! +­r¬zÑ:Ô:ð $½sÀ;Ñ?OÔ?OÐSTÒ?TÐ?Tð  $˜Ø!,�G˜A‘JØ”K ”N×*Ò*­5°©>¬>¸5ÑAÔAÐAØ�Kð —9’9 $�9Ñ'Ô'ˆDà�zŠz˜)¨W¸EˆzÑBÔBÐBrK   Únc                ó0   — |                       d|¬¦  «        S )NÚdiff)rC  r  )rf   rC  s     rI   rE  zBaseBlockManager.diffn  s   € à�zŠz˜& AˆzÑ&Ô&Ð&rK   ÚraiseÚerrorsc                ó2   — |                       d||¬¦  «        S )NÚastype)rL   rG  r  )rf   rL   rG  s      rI   rI  zBaseBlockManager.astyper  s   € Ø�zŠz˜(¨%¸ˆzÑ?Ô?Ð?rK   c                ó,   — |                       d¦  «        S )NÚconvertr  re   s    rI   rK  zBaseBlockManager.convertu  s   € Ø�zŠz˜)Ñ$Ô$Ð$rK   c                ó   —  | j         di |¤ŽS )NÚconvert_dtypes)rM  r  r  s     rI   rM  zBaseBlockManager.convert_dtypesx  s   € ØˆtŒzÐ5Ð5¨fÐ5Ð5Ð5rK   Únan)Úna_repÚquotingrO  c               ó8   — |                       d|||||¬¦  «        S )z}
        Convert values to native types (strings / python objects) that are used
        in formatting (repr / csv).
        Úget_values_for_csv)rO  rP  Úfloat_formatÚdate_formatÚdecimalr  )rf   rS  rT  rU  rO  rP  s         rI   rR  z#BaseBlockManager.get_values_for_csv{  s1   € ð �zŠzØ ØØØ%Ø#Øð ñ 
ô 
ð 	
rK   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )z>Whether any of the blocks in this manager are extension blocksc              3  ó$   K  — | ]}|j         V — Œd S rb   ©Úis_extension©rw   rÕ   s     rI   ry   z7BaseBlockManager.any_extension_types.<locals>.<genexpr>Ž  s%   è è € Ð?Ð?¨%�5Ô%Ð?Ð?Ð?Ð?Ð?Ð?rK   )r»   r]   re   s    rI   Úany_extension_typesz$BaseBlockManager.any_extension_types‹  s#   € õ Ð?Ð?°4´;Ð?Ñ?Ô?Ñ?Ô?Ð?rK   c                óZ   — t          | j        ¦  «        dk    r| j        d         j        S dS )z8return a boolean if we are a single block and are a viewr‡   r   F)rH   r]   Úis_viewre   s    rI   r]  zBaseBlockManager.is_view�  s/   € õ ˆtŒ{ÑÔ˜qÒ Ð Ø”;˜q”>Ô)Ð)ð ˆurK   Ú	predicater   c                óT   ‡— ˆfd„| j         D ¦   «         }|                      |¦  «        S )Nc                ó4   •— g | ]} ‰|j         ¦  «        ¯|‘ŒS rX   rÎ   ©rw   r�   r^  s     €rI   rÂ   z5BaseBlockManager._get_data_subset.<locals>.<listcomp>   ó*   ø€ ÐFÐFÐF˜#°	°	¸#¼*Ñ0EÔ0EÐF�#ÐFÐFÐFrK   )r]   Ú_combine)rf   r^  r]   s    ` rI   Ú_get_data_subsetz!BaseBlockManager._get_data_subsetŸ  s0   ø€ ØFÐFÐFÐF ¤ÐFÑFÔFˆØ�}Š}˜VÑ$Ô$Ð$rK   ú
np.ndarrayc                óŽ   ‡— ˆfd„| j         D ¦   «         }t          j        t          j        d„ |D ¦   «         ¦  «        ¦  «        }|S )Nc                ó4   •— g | ]} ‰|j         ¦  «        ¯|‘ŒS rX   rÎ   ra  s     €rI   rÂ   z=BaseBlockManager._get_data_subset_indices.<locals>.<listcomp>¤  rb  rK   c                ó&   — g | ]}|j         j        ‘ŒS rX   ©rò   Úas_array©rw   rû   s     rI   rÂ   z=BaseBlockManager._get_data_subset_indices.<locals>.<listcomp>¥  ó   € Ð)NÐ)NÐ)NÀ!¨!¬*Ô*=Ð)NÐ)NÐ)NrK   )r]   rR   ÚsortÚconcatenate)rf   r^  r]   ró   s    `  rI   Ú_get_data_subset_indicesz)BaseBlockManager._get_data_subset_indices£  sK   ø€ ØFÐFÐFÐF ¤ÐFÑFÔFˆÝ”'�"œ.Ð)NÐ)NÀvÐ)NÑ)NÔ)NÑOÔOÑPÔPˆØˆrK   c                ó   — g }| j         D ]`}|j        t          k    r|                     |¦  «         Œ(|j        r1|                     d„ |                     ¦   «         D ¦   «         ¦  «         Œa|                      |¦  «        S )zs
        Select blocks that are bool-dtype and columns from object-dtype blocks
        that are all-bool.
        c              3  ó(   K  — | ]}|j         ¯	|V — Œd S rb   )Úis_bool©rw   r’   s     rI   ry   z1BaseBlockManager.get_bool_data.<locals>.<genexpr>µ  s)   è è € Ð!JÐ!J¨¸r¼zÐ!J "Ð!JÐ!JÐ!JÐ!JÐ!JÐ!JrK   )r]   rL   ri   ÚappendÚ	is_objectÚextendÚ_splitrc  )rf   Ú
new_blocksr�   s      rI   Úget_bool_datazBaseBlockManager.get_bool_data¨  s‰   € ð ˆ
à”;ð 	Kð 	KˆCØŒy�DÒ Ð Ø×!Ò! #Ñ&Ô&Ð&Ð&à”ð KØ×!Ò!Ð!JÐ!J¨s¯zªz©|¬|Ð!JÑ!JÔ!JÑJÔJÐJøà�}Š}˜ZÑ(Ô(Ð(rK   c                óœ   — d„ | j         D ¦   «         }t          |¦  «        t          | j         ¦  «        k    r| S |                      |¦  «        S )Nc                ó    — g | ]}|j         ¯	|‘ŒS rX   )Ú
is_numericrÁ   s     rI   rÂ   z5BaseBlockManager.get_numeric_data.<locals>.<listcomp>º  s   € ÐGÐGÐG #¸¼ÐG˜#ÐGÐGÐGrK   )r]   rH   rc  )rf   Únumeric_blockss     rI   Úget_numeric_dataz!BaseBlockManager.get_numeric_data¹  sM   € ØGÐG¨¬ÐGÑGÔGˆÝˆ~ÑÔ¥# d¤kÑ"2Ô"2Ò2Ð2ð ˆKØ�}Š}˜^Ñ,Ô,Ð,rK   ÚindexúIndex | Nonec                óø  — t          |¦  «        dk    rg| j        dk    rH|�| j        dd…         |g}n| j        dd…         g| j        dd…         ¢}|                      |¦  «        S |                      ¦   «         S t          j        t          j        d„ |D ¦   «         ¦  «        ¦  «        }t          j	        || j
        d         ¦  «        }g }|D ]Q}|                     d¬¦  «        }t          ||j        j                 ¦  «        |_        |                     |¦  «         ŒRt!          | j        ¦  «        }|�||d<   | j                             |¦  «        |d<   t%          | ¦  «                             ||¦  «        S )	z$return a new manager with the blocksr   r2  Nr‡   c                ó&   — g | ]}|j         j        ‘ŒS rX   ri  rk  s     rI   rÂ   z-BaseBlockManager._combine.<locals>.<listcomp>Î  rl  rK   Fr4  éÿÿÿÿ)rH   rg   rq   r_   r“   rR   rm  rn  r   Úget_reverse_indexerr{   r:  r   rò   ró   rt  r<  rÈ   rŽ   r€   )	rf   r]   r  r_   ró   Úinv_indexerrx  rû   r’   s	            rI   rc  zBaseBlockManager._combineÁ  se  € åˆv‰;Œ;˜!ÒÐØŒy˜AŠ~ˆ~àÐ$Ø œJ r¨ rœN¨EÐ2�D�Dà œJ r¨ rœNÐ;¨T¬Y°q°r°r¬]Ð;�DØ—’ tÑ,Ô,Ð,Ø—?’?Ñ$Ô$Ð$õ ”'�"œ.Ð)NÐ)NÀvÐ)NÑ)NÔ)NÑOÔOÑPÔPˆÝÔ-¨g°t´zÀ!´}ÑEÔEˆà"$ˆ
Øð 	"ð 	"ˆAØ—’˜U�Ñ#Ô#ˆBÝ(¨°R´[Ô5HÔ)IÑJÔJˆBŒKØ×Ò˜bÑ!Ô!Ð!Ð!å�D”I‰ŒˆàÐØˆD�‰HØ”*—/’/ 'Ñ*Ô*ˆˆQ‰å�D‰zŒz×%Ò% j°$Ñ7Ô7Ð7rK   c                ó*   — t          | j        ¦  «        S rb   r£   re   s    rI   ÚnblockszBaseBlockManager.nblocksß  s   € å�4”;ÑÔÐrK   r5  c               ó&  — d„ | j         D ¦   «         }|                      d|¬¦  «        }||_         | j        dk    r@| j        }|�7|                     ¦   «         |_        | j                             ¦   «         |_        |r|                     ¦   «          |S )a	  
        Make deep or shallow copy of BlockManager

        Parameters
        ----------
        deep : bool, string or None, default True
            If False, return a shallow copy (do not copy data)

        Returns
        -------
        BlockManager
        c                ó6   — g | ]}|                      ¦   «         ‘ŒS rX   rï   rv   s     rI   rÂ   z)BaseBlockManager.copy.<locals>.<listcomp>ñ  s    € Ð2Ð2Ð2 "�B—G’G‘I”IÐ2Ð2Ð2rK   r:  r4  r‡   )r_   rö   rg   rZ   r:  r[   r%  )rf   r5  Únew_axesÚresrƒ   s        rI   r:  zBaseBlockManager.copyã  s�   € ð 3Ð2¨¬	Ð2Ñ2Ô2ˆà�jŠj˜ dˆjÑ+Ô+ˆØˆŒàŒ9�qŠ=ˆ=à”\ˆFØÐ!Ø$Ÿkšk™mœm�”Ø#œ}×1Ò1Ñ3Ô3�”àð 	'Ø×$Ò$Ñ&Ô&Ð&Øˆ
rK   c                ó   — dS r•   rX   re   s    rI   Úis_consolidatedz BaseBlockManager.is_consolidated  r—   rK   c                ó²   — |                       ¦   «         r| S  t          | ¦  «        | j        | j        d¬¦  «        }d|_        |                     ¦   «          |S )zr
        Join together blocks having same dtype

        Returns
        -------
        y : BlockManager
        F©rl   )r�  rŽ   r]   r_   rk   r%  )rf   r&  s     rI   ÚconsolidatezBaseBlockManager.consolidate  s^   € ð ×ÒÑ!Ô!ð 	ØˆKð �T�$‰ZŒZ˜œ T¤YÀÐGÑGÔGˆØ#ˆÔØ
×ÒÑ!Ô!Ð!Øˆ	rK   c                ó   — d S rb   rX   re   s    rI   r%  z%BaseBlockManager._consolidate_inplace  s   € ØˆrK   Ú	new_indexÚ
only_slicec                ó|   — | j         |                              |¦  «        \  }}|                      |||||¬¦  «        S )z4
        Conform data manager to new index.
        )r˜   r/  r“  )r_   ÚreindexÚreindex_indexer)rf   r’  r˜   r/  r“  ró   s         rI   Úreindex_axiszBaseBlockManager.reindex_axis  sN   € ð "œY tœ_×4Ò4°YÑ?Ô?Ñˆ	�7à×#Ò#ØØØØ!Ø!ð $ñ 
ô 
ð 	
rK   )Úuse_na_proxyÚnew_axisró   únpt.NDArray[np.intp] | NoneÚ
allow_dupsr˜  c               óŒ  — |€L|| j         |         u r| S |                      d¬¦  «        }t          | j         ¦  «        |_         ||j         |<   |S t          |t          j        ¦  «        sJ ‚|s | j         |                              |¦  «         || j        k    rt          d¦  «        ‚|dk    r't          |  	                    ||||¬¦  «        ¦  «        }	n¿g }	| j
        D ]µ}
|
j        t          j        k    rjt	          j        |
j        j        d         t!          |¦  «        ft          j        ¬¦  «        }|	                     t%          ||
j        d¬	¦  «        ¦  «         Œ�|	                     |
                     |d
|�|n|
j        ¬¦  «        ¦  «         Œ¶t          | j         ¦  «        }|||<   | j        dk    r(| j         d
|z
                                ¦   «         |d
|z
  <   t/          | ¦  «                             |	|¦  «        }|d
k    r<| j                             ¦   «         |_        | j                             ¦   «         |_        |S )aÜ  
        Parameters
        ----------
        new_axis : Index
        indexer : ndarray[intp] or None
        axis : int
        fill_value : object, default None
        allow_dups : bool, default False
        only_slice : bool, default False
            Whether to take views, not copies, along columns.
        use_na_proxy : bool, default False
            Whether to use an np.void ndarray for newly introduced columns.

        pandas-indexer with -1's only.
        NFr4  ú#Requested axis not found in managerr   )r/  r“  r˜  rT   r2  ©rg   r‡   )r˜   r/  )r_   r:  r<  rP   rR   r8  Ú_validate_can_reindexrg   Ú
IndexErrorÚ_slice_take_blocks_ax0r]   rL   ÚvoidÚemptyr‹   r{   rH   rt  r2   rò   Útake_ndr/  rð   rŽ   r€   rƒ   rZ   r…   r[   )rf   r™  ró   r˜   r/  r›  r“  r˜  Úresultrx  r�   ÚvalsrŠ  Únew_mgrs                 rI   r–  z BaseBlockManager.reindex_indexer-  sI  € ð4 ˆ?Ø˜4œ9 Tœ?Ð*Ð*à�à—Y’Y E�YÑ*Ô*ˆFÝ˜tœy™/œ/ˆFŒKØ (ˆFŒK˜ÑØˆMõ ˜'¥2¤:Ñ.Ô.Ð.Ð.Ð.ð ð 	;ØŒI�dŒO×1Ò1°'Ñ:Ô:Ð:à�4”9ÒÐÝÐBÑCÔCÐCà�1Š9ˆ9ÝØ×+Ò+ØØ)Ø)Ø!-ð	 ,ñ ô ñô ˆJˆJð ˆJØ”{ð ð �Ø”9¥¤Ò'Ð'õ œ8 S¤ZÔ%5°aÔ%8½#¸g¹,¼,Ð$GÍrÌwÐWÑWÔW�DØ×%Ò%¥j°°s´|È!Ð&LÑ&LÔ&LÑMÔMÐMÐMà×%Ò%ØŸšØ#Ø!"à.8Ð.D 
 
È#Ì.ð	 $ñ ô ñô ð ð õ ˜œ	‘?”?ˆØ!ˆ�‰ØŒ9˜Š>ˆ>Ø!%¤¨1¨t©8Ô!4×!9Ò!9Ñ!;Ô!;ˆH�Q˜‘XÑå�t‘*”*×(Ò(¨°XÑ>Ô>ˆØ�1Š9ˆ9à"œk×.Ò.Ñ0Ô0ˆGŒOØ#œ|×0Ò0Ñ2Ô2ˆGÔØˆrK   )r˜  Úref_inplace_opÚslice_or_indexerúslice | np.ndarrayr¨  úGenerator[Block]c          	   #  óê  K  — |t           j        u}t          || j        d         |¬¦  «        \  }}}	| j        r÷| j        d         }
|dk    r@|	dk    rdS t          t          d|	¦  «        ¦  «        }|
                     ||¬¦  «        V — dS |r| j	        dk    r—|r	|€|
j
        }|sP|rNt          |¦  «        D ]=\  }}|
                     t          ||dz   ¦  «        t          |¦  «        |¬¦  «        V — Œ>n8t          t          d|	¦  «        ¦  «        }|
                     |d||¬¦  «        V — dS |dk    r| j        |         }| j        |         }n:t          j        | j        |d	|¬
¦  «        }t          j        | j        |d	|¬
¦  «        }| }t!          j        ||¬¦  «        D �]Í\  }}|d	k    rdt%          |¦  «        \  }}t'          |¦  «        r t)          |¦  «        dk    rd„ |D ¦   «         }n|g}|D ]}|                      |||¬¦  «        V — ŒŒp| j        |         }
|
j        sN|
j        sGd}|D ]A}|
                     |¬¦  «        }t          t          ||dz   ¦  «        ¦  «        |_        |V — ŒBŒÒ||j                 }t7          t)          |¦  «        |                     ¦   «         dz   ¦  «        }t          j        ||¦  «        }t;          |t          ¦  «        r|
                     ||¬¦  «        }|V — �ŒX|rWt=          ||d¬¦  «        D ]B\  }}t          ||dz   ¦  «        }t          |¦  «        }|
                     ||¬¦  «        }|V — ŒC�Œ±|
                     |d|¬¦  «        }|V — �ŒÏdS )aÄ  
        Slice/take blocks along axis=0.

        Overloaded for SingleBlock

        Parameters
        ----------
        slice_or_indexer : slice or np.ndarray[int64]
        fill_value : scalar, default lib.no_default
        only_slice : bool, default False
            If True, we always return views on existing arrays, never copies.
            This is used when called from ops.blockwise.operate_blockwise.
        use_na_proxy : bool, default False
            Whether to use an np.void ndarray for newly introduced columns.
        ref_inplace_op: bool, default False
            Don't track refs if True because we operate inplace

        Yields
        ------
        Block : New Block
        r   )Ú
allow_fillrŒ   N)Únew_mgr_locsr‡   )r®  r¨  )r˜   r®  r/  rƒ  )r/  r­  ©Úgroupc                ó,   — g | ]}t          |¦  «        ‘ŒS rX   ©r   )rw   Úcol_idxs     rI   rÂ   z;BaseBlockManager._slice_take_blocks_ax0.<locals>.<listcomp>à  s    € Ð!RÐ!RÐ!R¸g¥.°Ñ"9Ô"9Ð!RÐ!RÐ!RrK   )r‰   r/  r˜  Fr4  Trà   )r˜   r®  )r   r0  Ú_preprocess_slice_or_indexerr{   r¤   r]   r   rŒ   Úgetitem_block_columnsrg   r/  rµ   r¤  rƒ   r…   r   ÚlibinternalsÚget_blkno_placementsr   r   rH   Ú_make_na_blockÚ_can_consolidateÚ_validate_ndimr:  rò   ró   ÚmaxÚmaybe_indices_to_slicerP   rã   )rf   r©  r/  r“  r˜  r¨  r­  Úsl_typeÚslobjÚsllenr�   r‘   r©   Úmlrƒ   r…   r°  r­   rò   rL   Ú_Ú
placementsr‰   r5  Úmgr_locÚnewblkÚtakerÚmax_lenr’   Úslcs                                 rI   r¡  z'BaseBlockManager._slice_take_blocks_ax0„  sf  è è € ð<  ¥s¤~Ð5ˆ
å <Ø˜dœj¨œm¸
ð!
ñ !
ô !
Ñˆ�˜ð Ôð  	Ø”+˜a”.ˆCà˜'Ò!Ð!ð ˜A’:�:Ø�FÝ#¥E¨!¨U¡O¤OÑ4Ô4�Ø×/Ò/°ÀBÐ/ÑGÔGÐGÐGÐGØ�Øð  4¤9°¢> >Øð 0 *Ð"4Ø!$¤�Jà!ð  jð õ "+¨5Ñ!1Ô!1ð ð ™˜˜2Ø!×7Ò7Ý! " b¨1¡fÑ-Ô-Ý)7¸Ñ):Ô):Ø+9ð 8ñ ô ð ð ð ð ðõ (­¨a°©¬Ñ8Ô8�BØŸ+š+ØØØ%'Ø#-ð	 &ñ ô ð ð ð ð �à�gÒÐØ”[ Ô'ˆFØ”l 5Ô)ˆGˆGå”]Ø”˜U¨r¸jðñ ô ˆFõ ”mØ”˜e°¸zðñ ô ˆGð �ˆÝ+Ô@ÀÈuÐUÑUÔUð 6	!ñ 6	!‰OˆE�8Ø˜Š{ˆ{õ 3°:Ñ>Ô>‘��qÝ& uÑ-Ô-ð ,µ#°h±-´-À!Ò2CÐ2Cð "SÐ!RÈÐ!RÑ!RÔ!R�J�Jà"* �Jà!+ð ð �IØ×-Ò-Ø"+Ø#-Ø%1ð .ñ ô ð ð ð ð ðð ”k %Ô(�ð Ô+ð  !°CÔ4Fð  !ð
 !�DØ#+ð %ð %˜Ø!$§¢¨t Ñ!4Ô!4˜Ý*8½¸wÈÐRSÉÑ9TÔ9TÑ*UÔ*U˜œØ$˜˜˜˜ð%ð $ HÔ$4Ô5�EÝ!¥# h¡-¤-°·²±´¸q±ÑAÔA�GÝÔ6°u¸gÑFÔF�Eå! %­Ñ/Ô/ð !Ø ×6Ò6°uÈ8Ð6ÑTÔT˜Ø ˜˜˜™Ø#ð !õ &)¨°ÀÐ%FÑ%FÔ%Fð %ð %™E˜A˜rÝ"'¨¨1¨q©5¡/¤/˜CÝ!/°Ñ!3Ô!3˜BØ!$×!:Ò!:¸3ÈRÐ!:Ñ!PÔ!P˜Bà"$˜H˜H˜H˜Hñ%ð !Ÿ[š[¨°QÀX˜[ÑNÔN˜Ø ˜˜˜™ðm6	!ð 6	!rK   r‰   r   r1   c                ó8  — |rT|�J ‚t          |¦  «        | j        d         f}t          j        |t          j        ¬¦  «        }t          ||d¬¦  «        }|S |�|t          j        u ret          j        }t          d„ | j        D ¦   «         ¦  «        }|�9t          j	        |j
        t          j        ¦  «        r| 
                    |¦  «        }t          |¦  «        | j        d         f}t          |¦  «        \  }}t          |||¦  «        }t          ||¬¦  «        S )Nr‡   rT   r2  rž  c                ó   — g | ]	}|j         ‘Œ
S rX   rT   rÁ   s     rI   rÂ   z3BaseBlockManager._make_na_block.<locals>.<listcomp>  s   € Ð&HÐ&HÐ&H°S s¤yÐ&HÐ&HÐ&HrK   rˆ   )rH   r{   rR   r£  r¢  r2   rN  rJ   r]   Ú
issubdtyperŽ   Úfloatingr   Úmake_na_arrayr8   )	rf   r‰   r/  r˜  r{   r¦  r’   rL   Úblock_valuess	            rI   r¸  zBaseBlockManager._make_na_block  s  € ð
 ð 	ØÐ%Ð%Ð%Ý˜‘^”^ T¤Z°¤]Ð3ˆEÝ”8˜E­¬Ð1Ñ1Ô1ˆDÝ˜D )°!Ð4Ñ4Ô4ˆBØˆIàÐ ­r¬vÐ!5Ð!5ÝœˆJå%Ð&HÐ&H¸D¼KÐ&HÑ&HÔ&HÑIÔIˆEØÐ ¥R¤]°5´:½r¼{Ñ%KÔ%KÐ Ø"ŸZšZ¨
Ñ3Ô3�
å�Y‘” ¤¨A¤Ð/ˆå3°JÑ?Ô?ÑˆˆzÝ$ U¨E°:Ñ>Ô>ˆÝ˜L°IÐ>Ñ>Ô>Ð>rK   r‡   Úverifyc                ó²   — | j         |         }t          |||¬¦  «        }| j        |                              |¦  «        }|                      |||d¬¦  «        S )ac  
        Take items along any axis.

        indexer : np.ndarray[np.intp]
        axis : int, default 1
        verify : bool, default True
            Check that all entries are between 0 and len(self) - 1, inclusive.
            Pass verify=False if this check has been done by the caller.

        Returns
        -------
        BlockManager
        )rÎ  T)r™  ró   r˜   r›  )r{   r-   r_   rÈ   r–  )rf   ró   r˜   rÎ  rC  r™   s         rI   rÈ   zBaseBlockManager.take)  sf   € ð* ŒJ�tÔˆÝ'¨°¸6ÐBÑBÔBˆà”Y˜t”_×)Ò)¨'Ñ2Ô2ˆ
Ø×#Ò#ØØØØð	 $ñ 
ô 
ð 	
rK   )rE   r`   ©T)rl   ri   rE   rm   )rE   r@   ©r]   r|   r_   r^   rE   r   )rE   rY   rb   ©rE   r   ©rE   ri   )r˜   r=   r™   r.   rE   rm   ©rE   r.   ©r©   r`   rE   ri   )r­   r`   rE   ri   )r³   rW   rE   rm   )r³   rW   r­   r`   rE   ri   ©rE   r¾   )rE   rË   )rE   rS   ©r×   r   rE   ri   )r×   rO   rE   ri   )ræ   rç   rE   r   )r  r  r  ri   rE   r   )r
  ri   rE   r   )r  r`   rE   r   )r  ri   rE   r   )FF)
r  r   r!  r   r  ri   r"  ri   rE   r   )r,  r`   rE   r   )rC  r`   rE   r   )rF  )rG  rS   rE   r   )rO  rS   rE   r   )r^  r   rE   r   )r^  r   rE   re  )r]   r|   r  r€  rE   r   )r5  ri   rE   r   ©rE   rm   )NF)r’  r.   r˜   r=   r“  ri   rE   r   )NFF)r™  r.   ró   rš  r˜   r=   r›  ri   r“  ri   r˜  ri   rE   r   )
r©  rª  r“  ri   r˜  ri   r¨  ri   rE   r«  )r‰   r   r˜  ri   rE   r1   )r‡   T)ró   rY   r˜   r=   rÎ  ri   rE   r   )ErÓ   Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Ú__annotations__Úpropertyrg   ro   r   rr   r{   Úclassmethodr€   rƒ   r…   r“   r–   rœ   r›   r¤   rq   r®   r¬   r·   r½   rÅ   rÊ   rÐ   rÖ   rÚ   rÝ   rö   r'   r  r  r  r  r  r  r$  r(  r+  r.  r7  rE  rI  rK  rM  rR  r[  r]  rd  ro  ry  r~  rc  r‡  r:  r�  r�  r%  r—  r–  r   r0  r¡  r¸  rÈ   rX   rK   rI   rW   rW   �   sè  € € € € € € ð0ð 0ðd €Ià!Ð!Ð!Ñ!Ø"Ð"Ð"Ñ"ØÐÐÑØÐÐÑàð"ð "ð "ñ „Xð"ð ÐÐÑØÐÐÑð"ð "ð "ð "ð "ð ðð ð ñ „Uðð ð2ð 2ð 2ñ „Xð2ð ð"ð "ð "ñ „[ð"ð ðð ð ñ „Xðð ðð ð ñ „Xðð4ð 4ð 4ð 4ð 4ð$ð ð ð ð%ð %ð %ð %ð
 ðð ð ñ „Uðð  ð%ð %ð %ñ „Xð%ð ðð ð ñ „Xðð3ð 3ð 3ð 3ð;ð ;ð ;ð ;ð
(ð 
(ð 
(ð 
(ðUð Uð Uð UðXð Xð Xð Xð(ð (ð (ð (ð ð3ð 3ð 3ñ „Xð3ð
ð 
ð 
ð 
ð(ð (ð (ð (ð ð)ð )ð )ñ „Uð)ð( (,ð2ð 2ð 2ð 2ð 2ðh ð.ð .ð .ñ „Uð.ð ð

ð 

ð 

ñ „Uð

ð ð
ð 
ð 
ñ „Uð
ð ð
ð 
ð 
ð 
ñ „Uð
ð ð6ð 6ð 6ñ „Uð6ð ð

ð 

ð 

ñ „Uð

ð ð6ð 6ð 6ñ „Uð6ð ð
 Øðð ð ð ñ „Uðð(Dð Dð Dð DðHð Hð Hð HðKð Kð Kð KðDCð DCð DCð DCðL'ð 'ð 'ð 'ð@ð @ð @ð @ð @ð%ð %ð %ð %ð6ð 6ð 6ð DIÐRVð
ð 
ð 
ð 
ð 
ð 
ð  ð@ð @ð @ñ „Xð@ð ðð ð ñ „Xðð%ð %ð %ð %ðð ð ð ð
)ð )ð )ð )ð"-ð -ð -ð -ð8ð 8ð 8ð 8ð 8ð< ð ð  ð  ñ „Xð ðð ð ð ð<ð ð ð ðð ð ð ð"ð ð ð ð ð
 Ø ð
ð 
ð 
ð 
ñ „Uð
ð2 Ø Ø ðUð #ðUð Uð Uð Uð Uð Uðt ”>Ø ð	J!ð #Ø$ðJ!ð J!ð J!ð J!ð J!ð J!ðZ PUð?ð ?ð ?ð ?ð ?ð8 Øð	
ð 
ð 
ð 
ð 
ð 
ð 
rK   rW   c                  ó‚  — e Zd ZdZdZ	 dXdYd„ZdZd„Zed[d„¦   «         Zd\d„Z	dXd]d„Z
d^d„Zed_d„¦   «         Z	 	 d`dad$„Z	 	 dbdcd)„Z	 ddded-„Z	 dfdgd0„Zdddhd3„ZdZd4„ZdZd5„Zdid6„Zdjd9„Zdjd:„Zdkd<„Zdld>„Zd?d@œdmdE„ZdidF„ZdndH„Zddej        fdodO„Zdej        fdpdP„Z dqdQ„Z!dZdR„Z"dZdS„Z#edrdV„¦   «         Z$edrdW„¦   «         Z%dS )sÚBlockManagerz0
    BaseBlockManager that holds 2D blocks.
    r2  Tr]   úSequence[Block]r_   úSequence[Index]rl   ri   rE   rm   c                ó    — |rK|D ]2}| j         |j         k    r t          d|j         › d| j         › d�¦  «        ‚Œ3|                      ¦   «          d S d S )NzNumber of Block dimensions (z) must equal number of axes (ú))rg   ÚAssertionErrorÚ_verify_integrity)rf   r]   r_   rl   rÕ   s        rI   ro   zBlockManager.__init__T  sŽ   € ð ð 	%ð  ð ð �Ø”9 ¤
Ò*Ð*Ý(ð8°u´zð 8ð 8Ø+/¬9ð8ð 8ð 8ñô ð ð +ð ×"Ò"Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%rK   c                ó^  — | j         }t          d„ | j        D ¦   «         ¦  «        }| j        D ]@}|j         dd …         |dd …         k    r#t          ||j         dd …         | j        ¦  «         ŒAt          | j        ¦  «        |k    r't          dt          | j        ¦  «        › d|› �¦  «        ‚d S )Nc              3  ó>   K  — | ]}t          |j        ¦  «        V — Œd S rb   )rH   rò   )rw   Úxs     rI   ry   z1BlockManager._verify_integrity.<locals>.<genexpr>l  s*   è è € Ð=Ð=¨A�˜AœJ™œÐ=Ð=Ð=Ð=Ð=Ð=rK   r‡   zINumber of manager items must equal union of block items
# manager items: z, # tot_items: )r{   Úsumr]   Úraise_construction_errorr_   rH   rq   ræ  )rf   Ú	mgr_shapeÚ	tot_itemsrÕ   s       rI   rç  zBlockManager._verify_integrityj  sÊ   € Ø”Jˆ	ÝÐ=Ð=°´Ð=Ñ=Ô=Ñ=Ô=ˆ	Ø”[ð 	Pð 	PˆEØŒ{˜1˜2˜2Œ )¨A¨B¨B¤-Ò/Ð/Ý(¨°E´KÀÀÀ´OÀTÄYÑOÔOÐOøÝˆtŒz‰?Œ?˜iÒ'Ð'Ý ð*Ý14°T´Z±´ð*ð *à'ð*ð *ñô ð ð (Ð'rK   r|   r^   r   c                ó   —  | ||d¬¦  «        S )úZ
        Constructor for BlockManager and SingleBlockManager with same signature.
        Fr�  rX   r~   s      rI   r€   zBlockManager.from_blocksw  s   € ð
 ˆs�6˜4°%Ð8Ñ8Ô8Ð8rK   Úlocr`   rŠ   c                ód  — t          | j        ¦  «        dk    r©| j        d                              t          d¦  «        |f¦  «        }t	          t          dt          |¦  «        ¦  «        ¦  «        }t          ||d| j        d         j        ¬¦  «        }t          || j        d          	                    ¦   «         ¦  «        S t          d„ | j        D ¦   «         ¦  «        }t          | ¦  «        }t          |t          ¦  «        rt          j        |t          ¬¦  «        }n%t          j        ||¬¦  «        }t!          |¦  «        }| j        D ]¼}t#          |j        ¦  «        D ]¥\  }}	|                     ||f¦  «        }
|j        j        dv rvt+          j        |
¦  «        rbt/          |
¦  «        rSt          |j        t0          ¦  «        r9|j        j        dk    rt          }nt          j        }|                     |¦  «        }|
||	<   Œ¦Œ½t          |t          ¦  «        r+|                     ¦   «         }|                     ||¬¦  «        }t	          t          dt          |¦  «        ¦  «        ¦  «        }t          ||d¬	¦  «        }t          || j        d          	                    ¦   «         ¦  «        S )
zÅ
        Return the array corresponding to `frame.iloc[loc]`.

        Parameters
        ----------
        loc : int

        Returns
        -------
        np.ndarray or ExtensionArray
        r‡   r   N©r‰   rg   r±   c                ó   — g | ]	}|j         ‘Œ
S rX   rT   rÁ   s     rI   rÂ   z(BlockManager.fast_xs.<locals>.<listcomp>�  s   € Ð"DÐ"DÐ"D° 3¤9Ð"DÐ"DÐ"DrK   rT   Úiubrû   ©r‰   rg   )rH   r]   ÚigetrŒ   r   r7   r±   rŠ   r_   rð   rJ   rP   r"   rR   r£  rO   r+   rµ   rò   rL   Úkindr   Úis_floatr'   r    Úfloat64rI  Úconstruct_array_typeÚ_from_sequence)rf   rñ  r¥  r‘   rÕ   rL   rC  r�   r©   ÚrlÚitemÚ	new_dtyper   s                rI   Úfast_xszBlockManager.fast_xs�  s�  € õ ˆtŒ{ÑÔ˜qÒ Ð ð 37´+¸a´.×2EÒ2EÝ�t‘”˜cÐ"ñ3ô 3ˆFõ  ¥ a­¨V©¬Ñ 5Ô 5Ñ6Ô6ˆBÝØØØØ”[ ”^Ô(ð	ñ ô ˆEõ & e¨T¬Y°q¬\×->Ò->Ñ-@Ô-@ÑAÔAÐAå!Ð"DÐ"D¸¼Ð"DÑ"DÔ"DÑEÔEˆå�‰IŒIˆå�e�^Ñ,Ô,ð 	<õ
 ”X˜a¥vÐ.Ñ.Ô.ˆFˆFå”X˜a uÐ-Ñ-Ô-ˆFÝ3°FÑ;Ô;ˆFà”;ð 	"ð 	"ˆCõ # 3¤<Ñ0Ô0ð "ð "‘��2Ø—x’x  C Ñ)Ô)�à”LÔ%¨Ð.Ð.Ýœ TÑ*Ô*ð /å˜T™
œ
ð /õ # 3¤9Õ.>Ñ?Ô?ð /ð ”|Ô(¨CÒ/Ð/Ý$*˜	˜	å$&¤J˜	Ø#Ÿ]š]¨9Ñ5Ô5�FØ!��r‘
�
ð%"õ( �e�^Ñ,Ô,ð 	=Ø×,Ò,Ñ.Ô.ˆCØ×'Ò'¨°eÐ'Ñ<Ô<ˆFå�E !¥S¨¡[¤[Ñ1Ô1Ñ2Ô2ˆÝ˜&¨B°QÐ7Ñ7Ô7ˆÝ! %¨¬°1¬×):Ò):Ñ)<Ô)<Ñ=Ô=Ð=rK   r©   Ú	track_refc                ój  — | j         | j        |                  }|                     | j        |         ¦  «        }t	          t          dt          |¦  «        ¦  «        ¦  «        } t          |¦  «        ||d|r|j        nd¬¦  «        }t          || j
        d                              ¦   «         ¦  «        S )z:
        Return the data as a SingleBlockManager.
        r   r‡   Nró  )r]   rƒ   r÷  r…   r   rŒ   rH   rŽ   r±   rŠ   r_   rð   )rf   r©   r  rÕ   r‹   r‘   r’   s          rI   r÷  zBlockManager.igetÊ  s    € ð ”˜DœK¨œNÔ+ˆØ—’˜DœL¨œOÑ,Ô,ˆõ �E !¥S¨¡[¤[Ñ1Ô1Ñ2Ô2ˆØ�T�%‰[Œ[Ø˜b q¸YÐ/P¨u¬z¨zÈDð
ñ 
ô 
ˆõ " " d¤i°¤l×&7Ò&7Ñ&9Ô&9Ñ:Ô:Ð:rK   r<   c                óv   — | j         | j        |                  }|                     | j        |         ¦  «        }|S )z×
        Return the data for column i as the values (ndarray or ExtensionArray).

        Warning! The returned array is a view but doesn't handle Copy-on-Write,
        so this should be used with caution.
        )r]   rƒ   r÷  r…   )rf   r©   rÕ   r‹   s       rI   Úiget_valueszBlockManager.iget_valuesØ  s2   € ð ”˜DœK¨œNÔ+ˆØ—’˜DœL¨œOÑ,Ô,ˆØˆrK   úlist[np.ndarray]c                óø   — dgt          | j        ¦  «        z  }| j        D ]Y}|j        }|j                             ¦   «         }|j        dk    r|||d         <   Œ9t          |¦  «        D ]\  }}||         ||<   ŒŒZ|S )a'  
        Used in the JSON C code to access column arrays.
        This optimizes compared to using `iget_values` by converting each

        Warning! This doesn't handle Copy-on-Write, so should be used with
        caution (current use case of consuming this in the JSON code is fine).
        Nr‡   r   )rH   rq   r]   Ú	_mgr_locsÚarray_valuesÚ_values_for_jsonrg   rµ   )rf   r¥  r�   rò   r‹   r©   rñ  s          rI   Úcolumn_arrayszBlockManager.column_arraysä  sš   € ð ,0¨&µ3°t´z±?´?Ñ*Bˆà”;ð 		,ð 		,ˆCØ”}ˆHØÔ%×6Ò6Ñ8Ô8ˆFØŒ{˜aÒÐà&,��x ”{Ñ#Ð#õ (¨Ñ1Ô1ð ,ð ,‘F�A�sØ"(¨¤)�F˜3‘K�Kð,ð
 ˆrK   FNúint | slice | np.ndarrayr  r  r±   úBlockValuesRefs | Nonec                ó:	  ‡‡‡— | j         €| j        dk    r|                      ¦   «          t          ‰j        ¦  «        }|sS‰j        dk    r‰j        Šnt          ‰d¬¦  «        Š‰j        dd…         | j        dd…         k    rt          d¦  «        ‚t          j
        |¦  «        ret          t          |¦  «        }| j        |         }| j        |         }t          |j        ¦  «        dk    r|                      |‰|||‰¬¦  «        S |g}|rˆfd„}nˆfd„}| j        |         }	| j        |                              ¦   «         }
g }g }g Št)          j        |	d	¬
¦  «        D �]\  }}| j        |         }|
|j                 }|rm|                     ‰¦  «        rX|                      |¦  «        s#|                      || ||¦  «        ‰¬¦  «         Œo|                     | ||¦  «        ¦  «         Œ�|                     |j        j        |         ¦  «         |                     |¦  «         t          |¦  «        t          |j        ¦  «        k    r‰                     |¦  «         �Œ|                      ||‰¬¦  «         �Œ‰rÕt=          j        | j         t<          j!        ¬¦  «        }d	|‰<   t=          j"        | j         t<          j#        ¬¦  «        }| $                    d¦  «         t=          j%        | j         t          ‰¦  «        z
  ¦  «        || <   || j&                 | _&        tO          ˆfd„tQ          | j        ¦  «        D ¦   «         ¦  «        | _        |�rAt=          j)        |¦  «        }t          |¦  «        }g }|r^| *                    ˆˆfd„|D ¦   «         ¦  «         t=          j%        |¦  «        t          | j        ¦  «        z   | j&        |<   d| j         |<   n–|d                              |dd…         ¦  «        }|                     tW           ||¦  «        tY          |¦  «        ‰¬¦  «        ¦  «         t          | j        ¦  «        | j&        |<   t=          j%        |¦  «        | j         |<   | xj        tO          |¦  «        z  c_        d| _-        dS dS )z‚
        Set new item in-place. Does not consolidate. Adds new Block if not
        contained in the current set of items
        Nr‡   r2  rž  z9Shape of new values must be compatible with manager shape)r  r­   r�   r±   c                ó   •— ‰S rb   rX   ©r‰   r  s    €rI   Úvalue_getitemz(BlockManager.iset.<locals>.value_getitem9  s   ø€ Ø�rK   c                ó   •— ‰| j                  S rb   )ró   r  s    €rI   r  z(BlockManager.iset.<locals>.value_getitem>  s   ø€ Ø˜YÔ.Ô/Ð/rK   Tr¯  ©r±   rT   rƒ  c              3  óD   •K  — | ]\  }}|t          ‰¦  «        v¯|V — Œd S rb   )Úset)rw   r©   r�   Úremoved_blknoss      €rI   ry   z$BlockManager.iset.<locals>.<genexpr>i  sB   øè è € ð  ð  Ù˜˜3¸AÅSÈÑEXÔEXÐ<XÐ<X�Ð<XÐ<XÐ<XÐ<Xð ð  rK   c              3  óx   •K  — | ]4}t          ‰t          t          ||d z   ¦  «        ¦  «        ‰¬¦  «        V — Œ5dS )r‡   ©r‹   r‰   r±   N)r8   r   rŒ   )rw   rÃ  r±   r  s     €€rI   ry   z$BlockManager.iset.<locals>.<genexpr>v  sg   øè è € ð "ð "ð  õ !Ø$Ý"0µ°wÀÈ!ÁÑ1LÔ1LÑ"MÔ"MØ!ðñ ô ð"ð "ð "ð "ð "ð "rK   r   r  F).r[   rg   r‚   r   rL   ÚTr3   r{   ræ  r   r=  r   r`   rƒ   r]   rH   r  Ú_iset_singler…   r:  r¶  r·  ró   Úshould_storer¬   r;  Úset_inplacert  rò   rj  rR   Úzerosr‡  Úbool_r£  ÚintpÚfillÚarangerZ   rz   rµ   rn  rv  r8   r   rj   )rf   rñ  r  r  r±   Úvalue_is_extension_typer­   r�   r  rƒ   r…   Úunfit_mgr_locsÚunfit_val_locsÚblkno_lÚval_locsÚblk_locsÚ
is_deletedÚ
new_blknosÚ
unfit_idxrÚunfit_countrx  Úunfit_val_itemsr  s     ` `                 @rI   ÚisetzBlockManager.iset   s0  øøø€ ð Œ=Ð  T¤Y°¢] ]Ø×,Ò,Ñ.Ô.Ð.õ #6°e´kÑ"BÔ"BÐØ&ð 		ØŒz˜QŠˆØœ��å*¨5°qÐ9Ñ9Ô9�àŒ{˜1˜2˜2Œ $¤*¨Q¨R¨R¤.Ò0Ð0Ý$ØOñô ð õ Œ>˜#ÑÔð 	õ •s˜C‘.”.ˆCØ”K Ô$ˆEØ”+˜eÔ$ˆCÝ�3”=Ñ!Ô! QÒ&Ð&Ø×(Ò(ØØØ#ØØØð )ñ ô ð ð �%ˆCð #ð 	0ðð ð ð ð ð ð
0ð 0ð 0ð 0ð 0ð ”˜SÔ!ˆØ”,˜sÔ#×(Ò(Ñ*Ô*ˆàˆØˆØˆÝ!-Ô!BÀ6ÐQUÐ!VÑ!VÔ!Vð 	Iñ 	IÑˆG�XØ”+˜gÔ&ˆCØ˜xÔ/Ô0ˆHØð I˜3×+Ò+¨EÑ2Ô2ð Ià×3Ò3°GÑ<Ô<ð Ø×*Ò*Ø ¨=¨=¸Ñ+BÔ+BÈð +ñ ô ð ð ð —O’O H¨m¨m¸HÑ.EÔ.EÑFÔFÐFØà×%Ò% c¤lÔ&;¸HÔ&EÑFÔFÐFØ×%Ò% hÑ/Ô/Ð/õ �x‘=”=¥C¨¬Ñ$5Ô$5Ò5Ð5Ø"×)Ò)¨'Ñ2Ô2Ð2Ùð ×*Ò*¨7°HÀ4Ð*ÑHÔHÐHÑHàð 	åœ $¤,µb´hÐ?Ñ?Ô?ˆJØ)-ˆJ�~Ñ&åœ $¤,µb´gÐ>Ñ>Ô>ˆJØ�OŠO˜BÑÔÐÝ&(¤i°´½sÀ>Ñ?RÔ?RÑ0RÑ&SÔ&SˆJ˜
�{Ñ#Ø% d¤lÔ3ˆDŒLÝð  ð  ð  ð  Ý"+¨D¬KÑ"8Ô"8ð ñ  ô  ñ ô ˆDŒKð ñ '	-Ýœ¨Ñ7Ô7ˆJÝ˜j™/œ/ˆKà&(ˆJØ&ð Cð ×!Ò!ð "ð "ð "ð "ð "ð $.ð"ñ "ô "ñ ô ð õ ,.¬9°[Ñ+AÔ+AÅCÈÌÑDTÔDTÑ+T�”˜ZÑ(Ø,-�”˜jÑ)Ð)ð #1°Ô"3×":Ò":¸>È!È"È"Ô;MÑ"NÔ"N�à×!Ò!Ý Ø,˜}¨_Ñ=Ô=Ý"0°Ñ"<Ô"<Ø!ðñ ô ñô ð õ ,/¨t¬{Ñ+;Ô+;�”˜ZÑ(Ý,.¬I°kÑ,BÔ,B�”˜jÑ)àˆKŒK�5 Ñ,Ô,Ñ,ˆKŒKð (-ˆDÔ$Ð$Ð$ðO'	-ð '	-rK   r$  r&  únp.ndarray | list[int]úArrayLike | Nonec                óö  — | j         |         }| j        €|                      ¦   «          t          |                     |¦  «        ¦  «        }|�2|j        j        |         }t          |t          |¦  «        |¬¦  «        }n|d         }t          |dd…         ¦  «        }t          | j         ¦  «        }	g | j         d|…         ¢|‘| j         |dz   d…         ¢|¢R }
|
| _         |s|�dS t          j        t          |¦  «        ¦  «        | j        |j        j        <   t          |¦  «        D ]O\  }}t          j        t          |¦  «        ¦  «        | j        |j        j        <   ||	z   | j        |j        j        <   ŒPdS )a?  Removes columns from a block by splitting the block.

        Avoids copying the whole block through slicing and updates the manager
        after determining the new block structure. Optionally adds a new block,
        otherwise has to be done by the caller.

        Parameters
        ----------
        blkno_l: The block number to operate on, relevant for updating the manager
        blk_locs: The locations of our block that should be deleted.
        value: The value to set as a replacement.
        refs: The reference tracking object of the value to set.
        Nr  r   r‡   )r]   r[   r‚   rz   Údeleterò   rj  r8   r   rH   rR   r   ró   rµ   rZ   )rf   r$  r&  r  r±   r�   Únbs_tupÚlocsÚfirst_nbÚ	nr_blocksÚ
blocks_tupr©   r’   s                rI   r;  zBlockManager._iset_split_block–  sˆ  € ð( Œk˜'Ô"ˆàŒ=Ð Ø×,Ò,Ñ.Ô.Ð.å˜Ÿ
š
 8Ñ,Ô,Ñ-Ô-ˆØÐØ”<Ô(¨Ô2ˆDÝ# E­>¸$Ñ+?Ô+?ÀdÐKÑKÔKˆHˆHà˜q”zˆHÝ˜G A B BœKÑ(Ô(ˆGå˜œÑ$Ô$ˆ	ð
ØŒ[˜˜'˜Ô"ð
àð
ð Œ[˜ 1™˜˜Ô'ð
ð ð	
ð 
ˆ
ð !ˆŒàð 	˜5Ð,àˆFå35´9½SÀ¹]¼]Ñ3KÔ3KˆŒ�hÔ'Ô/Ñ0å˜wÑ'Ô'ð 	>ð 	>‰EˆAˆrÝ13´½3¸r¹7¼7Ñ1CÔ1CˆDŒM˜"œ+Ô-Ñ.Ø01°I±ˆDŒL˜œÔ,Ñ-Ð-ð	>ð 	>rK   r­   r�   r1   c                óR  — |rc|                      |¦  «        rN|                      |¦  «         }| j        |         }|                     t	          ||dz   ¦  «        ||¬¦  «         dS t          ||j        |¬¦  «        }	| j        }
g |
d|…         ¢|	‘|
|dz   d…         ¢R }|| _        dS )zþ
        Fastpath for iset when we are only setting a single position and
        the Block currently in that position is itself single-column.

        In this case we can swap out the entire Block and blklocs and blknos
        are unaffected.
        r‡   )r:  N©r‰   r±   )r  r¬   r…   r  rŒ   r8   r  r]   )rf   rñ  r  r  r­   r�   r±   r:  rñ   r’   Ú
old_blocksrx  s               rI   r  zBlockManager._iset_singleÊ  sÄ   € ð$ ð 	�s×'Ò'¨Ñ.Ô.ð 	Ø×3Ò3°EÑ:Ô:Ð:ˆDØ”< Ô$ˆDØ�OŠO�E $¨¨q©Ñ1Ô1°5¸tˆOÑDÔDÐDØˆFå˜%¨3¬=¸tÐDÑDÔDˆØ”[ˆ
ØH�z & 5 &Ô)ÐH¨2ÐH°
¸5À1¹9¸;¸;Ô0GÐHÐHˆ
Ø ˆŒØˆrK   ÚidxÚinplace_onlyc                óÞ  — |                       |¦  «        sm| j        |         }| j        |         }| j        |         j        }|j        dk    r|                     ¦   «         }n	||g         }|                      ||g|¦  «         |                      |d¬¦  «        }|r| 	                    ||¦  «         dS | 
                    |f|¦  «        }	|                      ||	j        j        d¬¦  «         dS )zù
        Set values ("setitem") into a single column (not setting the full column).

        This is a method on the BlockManager level, to avoid creating an
        intermediate Series at the DataFrame level (`s = df[loc]; s[idx] = value`)
        r‡   F)r  T)r  N)r®   rƒ   r…   r]   r‹   rg   r:  r;  r÷  Úsetitem_inplacer7  r,  Ú_block)
rf   rñ  r9  r  r:  r­   r?  r‹   Úcol_mgrr§  s
             rI   Úcolumn_setitemzBlockManager.column_setitemè  sù   € ð ×%Ò% cÑ*Ô*ð 	=Ø”K Ô$ˆEà”l 3Ô'ˆGà”[ Ô'Ô.ˆFØŒ{˜aÒÐØŸš™œ��ð    	Ô*�Ø×"Ò" 5¨7¨)°VÑ<Ô<Ð<ð —)’)˜C¨5�)Ñ1Ô1ˆØð 	@Ø×#Ò# C¨Ñ/Ô/Ð/Ð/Ð/à—o’o s f¨eÑ4Ô4ˆGØ�IŠI�c˜7œ>Ô0¸$ˆIÑ?Ô?Ð?Ð?Ð?rK   rþ  r   c                ód  — | j                              ||¦  «        }|j        dk    r7|j        }t	          |¦  «        dk    rt          d|j        j        › �¦  «        ‚nt          || j        ¬¦  «        }t          t          ||dz   ¦  «        ¦  «        }t          |||¬¦  «        }t	          | j        ¦  «        sMt          j        dgt          j        ¬¦  «        | _        t          j        dgt          j        ¬¦  «        | _        n*|                      |¦  «         |                      |¦  «         || j        d<   | xj        |fz  c_        d| _        t+          d	¦  «        rLt-          d
„ | j        D ¦   «         ¦  «        dk    r,t/          j        dt2          t5          ¦   «         ¬¦  «         dS dS dS )zó
        Insert item at selected position.

        Parameters
        ----------
        loc : int
        item : hashable
        value : np.ndarray or ExtensionArray
        refs : The reference tracking object of the value to set.
        r2  r‡   z-Expected a 1D array, got an array with shape rž  r  r   rT   FÚperformance_warningsc              3  ó&   K  — | ]}|j          V — Œd S rb   rX  rZ  s     rI   ry   z&BlockManager.insert.<locals>.<genexpr>0  s(   è è € ÐDÐD¨u˜Ô*Ð*ÐDÐDÐDÐDÐDÐDrK   éd   a   DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`)Ú
stacklevelN)rq   Úinsertrg   r  rH   rž   r{   r3   r   rŒ   r8   r]   rR   rÄ   r  r[   rZ   Ú_insert_update_mgr_locsÚ!_insert_update_blklocs_and_blknosr_   rj   r   rë  ÚwarningsÚwarnr   r   )rf   rñ  rþ  r  r±   r™  r‘   rÕ   s           rI   rE  zBlockManager.insert  sº  € ð ”:×$Ò$ S¨$Ñ/Ô/ˆàŒ:˜Š?ˆ?Ø”GˆEÝ�5‰zŒz˜AŠ~ˆ~Ý ØSÀEÄGÄMÐSÐSñô ð ð õ
 ' u°4´9Ð=Ñ=Ô=ˆEå�E # s¨Q¡wÑ/Ô/Ñ0Ô0ˆÝ E°R¸dÐCÑCÔCˆå�4”;ÑÔð 	8åœH a Sµ´Ð8Ñ8Ô8ˆDŒMÝœ8 Q C­r¬wÐ7Ñ7Ô7ˆDŒLˆLà×(Ò(¨Ñ-Ô-Ð-Ø×2Ò2°3Ñ7Ô7Ð7àˆŒ	�!‰ØˆŒ˜�xÑˆŒà#(ˆÔ õ Ð-Ñ.Ô.ð	åÐDÐD¸¼ÐDÑDÔDÑDÔDÀsÒJÐJåŒMðWõ #Ý+Ñ-Ô-ðñ ô ð ð ð ð		ð 	àJÐJrK   c                óÚ   — t          j        | j        |d…         ¦  «                             ¦   «         d         }|D ].}| j        |         }|j                             |¦  «        |_        Œ/dS )z…
        When inserting a new Block at location 'loc', we increment
        all of the mgr_locs of blocks above that by one.
        Nr   )rR   Úbincountrƒ   Únonzeror]   r  Úincrement_above)rf   rñ  rƒ   r­   r�   s        rI   rF  z$BlockManager._insert_update_mgr_locs;  sm   € õ ”˜Tœ[¨¨¨Ô.Ñ/Ô/×7Ò7Ñ9Ô9¸!Ô<ˆØð 	?ð 	?ˆEà”+˜eÔ$ˆCØœM×9Ò9¸#Ñ>Ô>ˆCŒMˆMð	?ð 	?rK   c                ó  — || j         j        d         k    rRt          j        | j        d¦  «        | _        t          j        | j        t          | j        ¦  «        ¦  «        | _        dS |dk    rVt          j        dg| j        g¦  «        | _        t          j        t          | j        ¦  «        g| j        g¦  «        | _        dS t          j
        | j         | j        |t          | j        ¦  «        ¦  «        \  }}|| _        || _        dS )zk
        When inserting a new Block at location 'loc', we update our
        _blklocs and _blknos.
        r   N)r…   r{   rR   rt  r[   rZ   rH   r]   rn  r¶  Úupdate_blklocs_and_blknosrƒ   )rf   rñ  Únew_blklocsr(  s       rI   rG  z.BlockManager._insert_update_blklocs_and_blknosG  sß   € ð �$”,Ô$ QÔ'Ò'Ð'åœI d¤m°QÑ7Ô7ˆDŒMÝœ9 T¤\µ3°t´{Ñ3CÔ3CÑDÔDˆDŒLˆLˆLØ�AŠXˆXåœN¨Q¨C°´Ð+?Ñ@Ô@ˆDŒMÝœ>­C°´Ñ,<Ô,<Ð+=¸t¼|Ð*LÑMÔMˆDŒLˆLˆLå&2Ô&LØ”˜dœk¨3µ°D´KÑ0@Ô0@ñ'ô 'Ñ#ˆK˜ð (ˆDŒMØ%ˆDŒLˆLˆLrK   c                óR  — t          j        | j        d         t           j        ¬¦  «        }d||<   |                      ¦   «         d         }|                      |dd¬¦  «        }| j        |          }|| j        d         g} t          | ¦  «        t          |¦  «        |d¬¦  «        S )zJ
        Delete selected locations, returning a new BlockManager.
        r   rT   T)r“  r¨  r‡   Fr�  )
rR   r  r{   r  rL  r¡  rq   r_   rŽ   rz   )rf   ró   r'  rÅ  ÚnbsÚnew_columnsr_   s          rI   ÚideletezBlockManager.idelete]  sž   € õ ”X˜dœj¨œmµ2´8Ð<Ñ<Ô<ˆ
Ø"ˆ
�7ÑØ�×%Ò%Ñ'Ô'¨Ô*ˆà×)Ò)¨%¸DÐQUÐ)ÑVÔVˆØ”j * Ô-ˆØ˜TœY qœ\Ð*ˆØ�t�D‰zŒz�% ™*œ* d¸UÐCÑCÔCÐCrK   r   r   c                óê  — g }| j         D ]k}|j        r=|                     ¦   «         D ]'}|                     |¦  «        }t	          ||¦  «        }Œ(ŒF|                     |¦  «        }t	          ||¦  «        }Œlt          |¦  «        dk    rd}n|d         j        j        d         }t          |¦  «        }t          | ¦  «         
                    || j        d                              ¦   «         |g¦  «        S )zâ
        Apply grouped reduction function blockwise, returning a new BlockManager.

        Parameters
        ----------
        func : grouped reduction function

        Returns
        -------
        BlockManager
        r   rƒ  )r]   ru  rw  rö   r4   rH   r‹   r{   r/   rŽ   r€   r_   rð   )rf   r   rù   r�   Úsbrý   Únrowsr  s           rI   Úgrouped_reducezBlockManager.grouped_reducem  sû   € ð &(ˆà”;ð 		Fð 		FˆCØŒ}ð Fð Ÿ*š*™,œ,ð Jð J�BØ Ÿhšh t™nœn�GÝ$1°'¸=Ñ$IÔ$I�M�MðJð Ÿ)š) D™/œ/�Ý -¨g°}Ñ EÔ E��åˆ}ÑÔ Ò"Ð"ØˆEˆEà! !Ô$Ô+Ô1°"Ô5ˆEÝ˜eÑ$Ô$ˆõ �D‰zŒz×%Ò% m°d´iÀ´l×6GÒ6GÑ6IÔ6IÈ5Ð5QÑRÔRÐRrK   c                óº   ‡— | j         dk    sJ ‚ˆfd„| j        D ¦   «         }t          d¦  «        }t          | ¦  «                             || j        |g¦  «        }|S )zÙ
        Apply reduction function blockwise, returning a single-row BlockManager.

        Parameters
        ----------
        func : reduction function

        Returns
        -------
        BlockManager
        r2  c                ó:   •— g | ]}|                      ‰¦  «        ‘ŒS rX   )Úreduce)rw   r�   r   s     €rI   rÂ   z'BlockManager.reduce.<locals>.<listcomp>ž  s%   ø€ Ð>Ð>Ð>¨3�c—j’j Ñ&Ô&Ð>Ð>Ð>rK   r‡   )rg   r]   r/   rŽ   r€   rq   )rf   r   Ú
res_blocksr  r§  s    `   rI   r[  zBlockManager.reduce�  sc   ø€ ð Œy˜AŠ~ˆ~ˆ~ˆ~à>Ð>Ð>Ð>°$´+Ð>Ñ>Ô>ˆ
Ý˜aÑ Ô ˆå�t‘*”*×(Ò(¨°d´jÀ%Ð5HÑIÔIˆØˆrK   r×   c                ó$   — t          | ||¦  «        S )zO
        Apply array_op blockwise with another (aligned) BlockManager.
        )r:   )rf   r×   Úarray_ops      rI   r:   zBlockManager.operate_blockwise¤  s   € õ !  u¨hÑ7Ô7Ð7rK   rf   c                ó.   — t          | |t          ¦  «        S )ú“
        Used in .equals defined in base class. Only check the column values
        assuming shape and indexes have already been checked.
        )r9   r&   rÙ   s     rI   rÚ   zBlockManager._equal_valuesª  s   € õ
 ˜T 5­,Ñ7Ô7Ð7rK   Úlinear)ÚinterpolationÚqsr.   rb  r?   c               ó  ‡‡— | j         dk    sJ ‚t          ‰¦  «        sJ ‚| j        d                              ¦   «         t	          ‰t
          j        ¬¦  «        g}ˆˆfd„| j        D ¦   «         } t          | ¦  «        ||¦  «        S )a‡  
        Iterate over blocks applying quantile reduction.
        This routine is intended for reduction type operations and
        will do inference on the generated blocks.

        Parameters
        ----------
        interpolation : type of interpolation, default 'linear'
        qs : list of the quantiles to be computed

        Returns
        -------
        BlockManager
        r2  r   rT   c                ó>   •— g | ]}|                      ‰‰¬ ¦  «        ‘ŒS ))rc  rb  )Úquantile)rw   r�   rb  rc  s     €€rI   rÂ   z)BlockManager.quantile.<locals>.<listcomp>Ì  s6   ø€ ð 
ð 
ð 
ØADˆC�LŠL˜B¨mˆLÑ<Ô<ð
ð 
ð 
rK   )	rg   r   r_   rð   r.   rR   rú  r]   rŽ   )rf   rc  rb  rŠ  r]   s    ``  rI   rf  zBlockManager.quantile±  s�   øø€ ð, Œy˜AŠ~ˆ~ˆ~ˆ~Ý˜BÑÔÐÐÐà”I˜a”L×%Ò%Ñ'Ô'­¨r½¼Ð)DÑ)DÔ)DÐEˆð
ð 
ð 
ð 
ð 
ØHLÌð
ñ 
ô 
ˆð �t�D‰zŒz˜& (Ñ+Ô+Ð+rK   c                ó@  — |                      | j        ¦  «        }|j        }|j         }|r, |j         j        |j        Ž }|                     d¬¦  «        }n&t          j	        |j        d         t          ¬¦  «        }g }g }	t          | j        ¦  «        dk    rd}
nHt          |¦  «        t          | j        ¦  «        z  }|t          |¦  «        k    sJ ‚t          |¦  «        }
| j        D ]•}|j        }|                     |
¦  «        }|                     ||||¬¦  «        \  }}|                     |¦  «         |	                     |¦  «         |                     ¦   «         t%          d„ |D ¦   «         ¦  «        k    sJ ‚Œ–||	         }t'          |||gd¬¦  «        }|S )	a'  
        Return a BlockManager with all blocks unstacked.

        Parameters
        ----------
        unstacker : reshape._Unstacker
        fill_value : Any
            fill_value for newly introduced missing values.

        Returns
        -------
        unstacked : BlockManager
        r   r3  r‡   rT   )Únew_placementÚneeds_maskingc              3  ó>   K  — | ]}t          |j        ¦  «        V — Œd S rb   )rH   r  rs  s     rI   ry   z'BlockManager.unstack.<locals>.<genexpr>  s,   è è € Ð$HÐ$H¸2¥S¨¬Ñ%6Ô%6Ð$HÐ$HÐ$HÐ$HÐ$HÐ$HrK   Fr�  )Úget_new_columnsrq   r’  Úmask_allr  ÚreshapeÚ
full_shaper»   rR   r  ri   rH   r`   r]   rò   Útile_for_unstackÚ_unstackrv  rë  rá  )rf   Ú	unstackerr/  rS  r’  r­  Ú
new_mask2Dri  rx  Úcolumns_maskÚfactorÚfacr�   rò   rh  r]   r  r&  s                     rI   ÚunstackzBlockManager.unstackÔ  s¹  € ð  ×/Ò/°´
Ñ;Ô;ˆØÔ'ˆ	à"Ô+Ð+ˆ
Øð 	Jð 3˜9œ>˜/Ô2°IÔ4HÐIˆJØ&ŸNšN°˜NÑ2Ô2ˆMˆMåœH YÔ%9¸!Ô%<ÅDÐIÑIÔIˆMà"$ˆ
Ø)+ˆåˆtŒz‰?Œ?˜aÒÐØˆFˆFå�kÑ"Ô"¥S¨¬¡_¤_Ñ4ˆCØ�#˜c™(œ(’?�?�?�?Ý˜‘X”XˆFà”;ð 	Ið 	IˆCØ”|ˆHØ$×5Ò5°fÑ=Ô=ˆMàŸ<š<ØØØ+Ø+ð	 (ñ ô ‰LˆF�Dð ×Ò˜fÑ%Ô%Ð%Ø×Ò Ñ%Ô%Ð%ð —8’8‘:”:¥Ð$HÐ$HÀÐ$HÑ$HÔ$HÑ!HÔ!HÒHÐHÐHÐHÐHð
 " ,Ô/ˆå˜* {°IÐ&>ÐQVÐWÑWÔWˆØˆ	rK   úGenerator[tuple[str, Self]]c              #  ó¼   K  — d„ }t          j        t          | j        |¬¦  «        |¬¦  «        D ]+\  }}||                      t          |¦  «        ¦  «        fV — Œ,dS )z•
        Yield a tuple of (str(dtype), BlockManager)

        Returns
        -------
        values : a tuple of (str(dtype), BlockManager)
        c                ó*   — t          | j        ¦  «        S rb   )rS   rL   )rÕ   s    rI   ú<lambda>z+BlockManager.to_iter_dict.<locals>.<lambda>  s   € �C ¤Ñ,Ô,€ rK   ©ÚkeyN)Ú	itertoolsÚgroupbyÚsortedr]   rc  r<  )rf   r|  rL   r]   s       rI   Úto_iter_dictzBlockManager.to_iter_dict  ss   è è € ð -Ð,ˆÝ&Ô.­v°d´kÀsÐ/KÑ/KÔ/KÐQTÐUÑUÔUð 	5ð 	5‰MˆE�6à˜Ÿš¥t¨F¡|¤|Ñ4Ô4Ð4Ð4Ð4Ð4Ð4ð	5ð 	5rK   rL   únp.dtype | Noner:  Úna_valuerO   re  c                ó¢  — t          j        |¦  «        ot          |¦  «        }t          | j        ¦  «        dk    r4t          j        | j        t          ¬¦  «        }| 	                    ¦   «         S | j
        rû| j        d         }|t           j        urt          j        |j        d¦  «        r|rnd}|j        r6|j                             |||¬¦  «                             |j        ¦  «        }n:|st          j        |j        |¬¦  «        }nt          j        |j        ||¬¦  «        }|r%|j        j        dv r||t          |j        ¦  «        <   |s |                     ¦   «         }d|j        _        n|                      ||¬	¦  «        }|t           j        u rn%|j        j        dk    r|rn||t          |¦  «        <   | 	                    ¦   «         S )
a,  
        Convert the blockmanager data into a numpy array.

        Parameters
        ----------
        dtype : np.dtype or None, default None
            Data type of the return array.
        copy : bool, default False
            If True then guarantee that a copy is returned. A value of
            False does not guarantee that the underlying data is not
            copied.
        na_value : object, default lib.no_default
            Value to be used as the missing value sentinel.

        Returns
        -------
        arr : ndarray
        r   rT   rø   T)rL   r‚  r:  )rL   r:  ÚmMF©rL   r‚  )r   rù  r'   rH   r]   rR   r£  r{   ÚfloatÚ	transposer¤   r0  Úis_np_dtyperL   rY  r‹   Úto_numpyrm  ÚasarrayrÄ   rø  rð   ÚflagsÚ	writeableÚ_interleave)rf   rL   r:  r‚  Ú
passed_nanr�   r�   s          rI   rj  zBlockManager.as_array  sÎ  € õ0 ”\ (Ñ+Ô+Ð>µ°X±´ˆ
åˆtŒ{ÑÔ˜qÒ Ð Ý”(˜4œ:­UÐ3Ñ3Ô3ˆCØ—=’=‘?”?Ð"àÔð !	CØ”+˜a”.ˆCà�sœ~Ð-Ð-õ ”? 3¤9¨cÑ2Ô2ð  °zð  àà�DàÔð Cð
 ”j×)Ò)ØØ%Øð *ñ ô ÷ ’'˜#œ)Ñ$Ô$ð	 �ð
 ð CÝ”j ¤°5Ð9Ñ9Ô9��å”h˜sœz°¸TÐBÑBÔB�Øð 1˜cœiœn°Ð4Ð4Ø(0�•D˜œÑ$Ô$Ñ%àð ,Ø—h’h‘j”j�Ø&+�”	Ô#øà×"Ò"¨¸Ð"ÑBÔBˆCð •s”~Ð%Ð%ØØŒYŒ^˜sÒ"Ð" zÐ"Øà%ˆC•�S‘	”	‰Nà�}Š}‰ŒÐrK   c                ó  — |st          d„ | j        D ¦   «         ¦  «        }t          |¦  «        }t          j        | j        |¬¦  «        }t          j        | j        d         ¦  «        }|t          j        d¦  «        k    rJ|t          j	        u r<| j        D ]2}|j
        }|                     |¦  «        }|||j        <   d||j        <   Œ3|S | j        D ]�}|j
        }|j        r|j                             ||¬¦  «        }n|                     |¦  «        }|||j        <   |t          j	        ur+|j        j        dv r|||j                 t#          |¦  «        <   d||j        <   Œ�|                     ¦   «         st'          d¦  «        ‚|S )	zt
        Return ndarray from blocks with specified item order
        Items must be contained in the blocks
        c                ó   — g | ]	}|j         ‘Œ
S rX   rT   rÁ   s     rI   rÂ   z,BlockManager._interleave.<locals>.<listcomp>x  s   € Ð2Ð2Ð2˜s�”Ð2Ð2Ð2rK   rT   r   rO   r‡   r…  r„  z'Some items were not contained in blocks)rJ   r]   rU   rR   r£  r{   r  rL   r   r0  rò   Ú
get_valuesró   rY  r‹   r‰  rø  r'   râ   ræ  )rf   rL   r‚  r¥  Úitemmaskr�   rý  r�   s           rI   r�  zBlockManager._interleavej  s¢  € ð ð 	õ &Ø2Ð2 d¤kÐ2Ñ2Ô2ñô ˆEõ   Ñ&Ô&ˆÝ”˜$œ*¨EÐ2Ñ2Ô2ˆå”8˜DœJ qœMÑ*Ô*ˆà•B”H˜XÑ&Ô&Ò&Ð&¨8µs´~Ð+EÐ+Eà”{ð )ð )�Ø”\�Ø—n’n UÑ+Ô+�Ø%(��r”zÑ"Ø'(�˜œÑ$Ð$ØˆMà”;ð 	%ð 	%ˆCØ”ˆBØÔð 
,ð
 ”j×)Ò)ØØ%ð *ñ ô ��ð
 —n’n UÑ+Ô+�Ø!$ˆF�2”:ÑØ�sœ~Ð-Ð-°#´)´.ÀDÐ2HÐ2HØ08��r”zÔ"¥4¨¡9¤9Ñ-Ø#$ˆH�R”ZÑ Ð à�|Š|‰~Œ~ð 	LÝ Ð!JÑKÔKÐKàˆrK   c                óF   — | j         s|                      ¦   «          | j        S )zH
        Return True if more than one block with the same dtype
        )rj   Ú_consolidate_checkrk   re   s    rI   r�  zBlockManager.is_consolidated¥  s*   € ð Ô'ð 	&Ø×#Ò#Ñ%Ô%Ð%ØÔ$Ð$rK   c                óê   — t          | j        ¦  «        dk    rd| _        d| _        d S d„ | j        D ¦   «         }t          |¦  «        t          t	          |¦  «        ¦  «        k    | _        d| _        d S )Nr‡   Tc                ó*   — g | ]}|j         ¯	|j        ‘ŒS rX   )r¹  rL   rÁ   s     rI   rÂ   z3BlockManager._consolidate_check.<locals>.<listcomp>³  s"   € ÐKÐKÐK °cÔ6JÐK�#”)ÐKÐKÐKrK   )rH   r]   rk   rj   r  rÉ   s     rI   r”  zBlockManager._consolidate_check­  sp   € ÝˆtŒ{ÑÔ˜qÒ Ð à$(ˆDÔ!Ø'+ˆDÔ$ØˆFØKÐK t¤{ÐKÑKÔKˆÝ # F¡¤­sµ3°v±;´;Ñ/?Ô/?Ò ?ˆÔØ#'ˆÔ Ð Ð rK   c                ó¨   — |                       ¦   «         s=t          | j        ¦  «        | _        d| _        d| _        |                      ¦   «          d S d S r•   )r�  Ú_consolidater]   rk   rj   r‚   re   s    rI   r%  z!BlockManager._consolidate_inplace·  sY   € Ø×#Ò#Ñ%Ô%ð 	/Ý& t¤{Ñ3Ô3ˆDŒKØ$(ˆDÔ!Ø'+ˆDÔ$Ø×,Ò,Ñ.Ô.Ð.Ð.Ð.ð		/ð 	/rK   Úmgrsú
list[Self]c                ó8  — d}g }|D ]y}|j         D ]X}|                     t          d¦  «        ¦  «        }|j                             |¦  «        |_        |                     |¦  «         ŒY|t          |j        ¦  «        z  }Œz | t          |¦  «        |¦  «        }|S )zK
        Concatenate uniformly-indexed BlockManagers horizontally.
        r   N)	r]   Úslice_block_columnsrŒ   r  Úaddrt  rH   rq   rz   )	r   r™  r_   Úoffsetr]   r³   r�   r’   r§  s	            rI   Úconcat_horizontalzBlockManager.concat_horizontalÁ  s§   € ð
 ˆØ ˆØð 		%ð 		%ˆCØ”zð "ð "�ð ×,Ò,­U°4©[¬[Ñ9Ô9�Ø!œ|×/Ò/°Ñ7Ô7�”Ø—’˜bÑ!Ô!Ð!Ð!à•c˜#œ)‘n”nÑ$ˆFˆFð �#•e˜F‘m”m TÑ*Ô*ˆØˆrK   c                ó    — t          d¦  «        ‚)zI
        Concatenate uniformly-indexed BlockManagers vertically.
        z.This logic lives (for now) in internals.concatrc   )r   r™  r_   s      rI   Úconcat_verticalzBlockManager.concat_vertical×  s   € õ
 "Ð"RÑSÔSÐSrK   rÐ  )r]   râ  r_   rã  rl   ri   rE   rm   rØ  rÑ  )rñ  r`   rE   rŠ   )r©   r`   r  ri   rE   rŠ   )r©   r`   rE   r<   )rE   r  )FN)
rñ  r  r  r<   r  ri   r±   r  rE   rm   )NN)
r$  r`   r&  r-  r  r.  r±   r  rE   rm   rb   )rñ  r`   r  r<   r  ri   r­   r`   r�   r1   r±   r  rE   rm   ©F)rñ  r`   r9  r  r:  ri   rE   rm   )rñ  r`   rþ  r   r  r<   rE   rm   )rE   rá  )r   r   rE   r   )r×   rá  rE   rá  )rf   rá  r×   rá  rE   ri   )rc  r.   rb  r?   rE   r   )rE   rw  )rL   r�  r:  ri   r‚  rO   rE   re  )rL   r�  r‚  rO   rE   re  rÓ  )r™  rš  r_   r^   rE   r   )&rÓ   rÙ  rÚ  rÛ  rg   ro   rç  rß  r€   r   r÷  r  rÞ  r
  r,  r;  r  r?  rE  rF  rG  rT  rX  r[  r:   rÚ   rf  rv  r€  r   r0  rj  r�  r�  r”  r%  rŸ  r¡  rX   rK   rI   rá  rá  J  s8  € € € € € ðð ð €Dð "&ð	%ð %ð %ð %ð %ð,ð ð ð ð ð9ð 9ð 9ñ „[ð9ðG>ð G>ð G>ð G>ðR;ð ;ð ;ð ;ð ;ð
ð 
ð 
ð 
ð ðð ð ñ „Xðð> Ø'+ðT-ð T-ð T-ð T-ð T-ðt #'Ø'+ð2>ð 2>ð 2>ð 2>ð 2>ðv (,ðð ð ð ð ð> TYð@ð @ð @ð @ð @ð@1ð 1ð 1ð 1ð 1ðf
?ð 
?ð 
?ð 
?ð&ð &ð &ð &ð,Dð Dð Dð Dð  Sð  Sð  Sð  SðDð ð ð ð*8ð 8ð 8ð 8ð8ð 8ð 8ð 8ð 08ð	,ð ,ð ,ð ,ð ,ð ,ðF;ð ;ð ;ð ;ðz5ð 5ð 5ð 5ð "&ØØœ>ð	Jð Jð Jð Jð Jð\ "&Øœ>ð6ð 6ð 6ð 6ð 6ðv%ð %ð %ð %ð(ð (ð (ð (ð/ð /ð /ð /ð ðð ð ñ „[ðð* ðTð Tð Tñ „[ðTð Tð TrK   rá  c                  ó¼  — e Zd ZdZedEd„¦   «         ZdZdZdZdZ		 dFdGd„Z
edHd„¦   «         Ze	 dIdJd„¦   «         ZdKd„ZdLdMd#„Zd$„ ZdNd%„ZdNd&„ZedOd'„¦   «         ZeedPd(„¦   «         ¦   «         ZedNd)„¦   «         ZedNd*„¦   «         ZdQd-„ZdLdRd1„ZedSd2„¦   «         ZedTd4„¦   «         ZdUd6„Zd7„ Zd8„ ZdVd:„Z dWd;„Z!edXd<„¦   «         Z"dNd=„Z#dYd>„Z$d?„ Z%dZdA„Z&d[dC„Z'dD„ Z(dS )\rŠ   zmanage a single block withrE   ú
Literal[1]c                ó   — dS r¢   rX   re   s    rI   rg   zSingleBlockManager.ndimâ  s   € àˆqrK   TrX   FrÕ   r1   r˜   r.   rl   ri   rm   c                ó&   — |g| _         |f| _        d S rb   ©r_   r]   )rf   rÕ   r˜   rl   s       rI   ro   zSingleBlockManager.__init__ë  s   € ð �FˆŒ	Ø�hˆŒˆˆrK   r]   r|   r_   r^   r   c                óŠ   — t          |¦  «        dk    sJ ‚t          |¦  «        dk    sJ ‚ | |d         |d         d¬¦  «        S )rð  r‡   r   Fr�  ru   r~   s      rI   r€   zSingleBlockManager.from_blocksø  sM   € õ �6‰{Œ{˜aÒÐÐÐÝ�4‰yŒy˜AŠ~ˆ~ˆ~ˆ~Øˆs�6˜!”9˜d 1œg¸Ð>Ñ>Ô>Ð>rK   NrÄ   r<   r  r±   r  c                ó²   — t          |¦  «        }t          t          dt          |¦  «        ¦  «        ¦  «        }t	          ||d|¬¦  «        } | ||¦  «        S )zN
        Constructor for if we have an array that is not yet a Block.
        r   r‡   ró  )r6   r   rŒ   rH   r7   )r   rÄ   r  r±   r‘   rÕ   s         rI   Ú
from_arrayzSingleBlockManager.from_array  sV   € õ $ EÑ*Ô*ˆÝ�E !¥S¨¡Z¤ZÑ0Ô0Ñ1Ô1ˆÝ˜%¨2°A¸DÐAÑAÔAˆØˆs�5˜%Ñ Ô Ð rK   Úcolumnsrá  c                ó  — | j         d         }t          |j        d¬¦  «        }t          d¦  «        } t	          |¦  «        ||d|j        ¬¦  «        }|| j        d                              ¦   «         g}t          |g|d¬¦  «        S )z5
        Manager analogue of Series.to_frame
        r   r2  rž  ró  F)r_   rl   )	r]   r3   r‹   r   rŽ   r±   r_   rð   rá  )rf   r«  r�   r�   r‘   Únew_blkr_   s          rI   Ú	to_2d_mgrzSingleBlockManager.to_2d_mgr  sƒ   € ð Œk˜!ŒnˆÝ  ¤°!Ð4Ñ4Ô4ˆÝ˜AÑÔˆØ•$�s‘)”)˜C¨2°A¸C¼HÐEÑEÔEˆØ˜œ 1œ×*Ò*Ñ,Ô,Ð-ˆÝ˜W˜I¨DÀ5ÐIÑIÔIÐIrK   r   r©   r`   c                óL   — | j         d         j                             ¦   «          S )r«   r   r°   )rf   r©   s     rI   r®   z$SingleBlockManager._has_no_reference  s"   € ð ”;˜q”>Ô&×4Ò4Ñ6Ô6Ð6Ð6rK   c                ó¬   ‡ — d„ ‰ j         D ¦   «         }ˆ fd„‰ j         D ¦   «         }t          ‰ j        ¦  «        }d|d„ ‰ j         D ¦   «         dœi}||||fS )Nc                ó   — g | ]	}|j         ‘Œ
S rX   rÎ   rk  s     rI   rÂ   z3SingleBlockManager.__getstate__.<locals>.<listcomp>%  s   € Ð6Ð6Ð6 Q˜œÐ6Ð6Ð6rK   c                ó>   •— g | ]}‰j         |j        j                 ‘ŒS rX   )rq   rò   ró   )rw   rû   rf   s     €rI   rÂ   z3SingleBlockManager.__getstate__.<locals>.<listcomp>&  s%   ø€ ÐKÐKÐK¸!�t”z !¤*Ô"4Ô5ÐKÐKÐKrK   ú0.14.1c                ó6   — g | ]}|j         |j        j        d œ‘ŒS ))r‹   rò   )r‹   rò   ró   rk  s     rI   rÂ   z3SingleBlockManager.__getstate__.<locals>.<listcomp>,  s7   € ð ð ð àð  !œx°Q´ZÔ5GÐHÐHðð ð rK   r§  )r]   r<  r_   )rf   rÍ  Úblock_itemsÚ
axes_arrayÚextra_states   `    rI   Ú__getstate__zSingleBlockManager.__getstate__$  sˆ   ø€ Ø6Ð6¨$¬+Ð6Ñ6Ô6ˆØKÐKÐKÐK¸t¼{ÐKÑKÔKˆÝ˜$œ)‘_”_ˆ
ð Ø"ðð à!œ[ðñ ô ðð ð
ˆð ˜<¨°kÐAÐArK   c                ó~  ‡‡— dd„Št          |t          ¦  «        r~t          |¦  «        dk    rkd|d         v ra|d         d         }d	„ |d
         D ¦   «         | _        t          | j        ¦  «        Št          ˆˆfd„|d         D ¦   «         ¦  «        | _        nt          d¦  «        ‚|                      ¦   «          d S )Nrg   r`   rE   r1   c                ó®   — t          | d¬¦  «        } t          |t          ¦  «        st          |¦  «        }t          | ¦  «        } t	          | ||¬¦  «        S )NTr  rö  )r,   rP   r   r6   r7   )r‹   rò   rg   s      rI   Úunpickle_blockz7SingleBlockManager.__setstate__.<locals>.unpickle_block8  sW   € õ # 6¸Ð>Ñ>Ô>ˆFÝ˜h­Ñ7Ô7ð 4Ý)¨(Ñ3Ô3�å(¨Ñ0Ô0ˆFÝ˜V¨x¸dÐCÑCÔCÐCrK   é   r³  é   c                ó,   — g | ]}t          |¦  «        ‘ŒS rX   )r0   rv   s     rI   rÂ   z3SingleBlockManager.__setstate__.<locals>.<listcomp>D  s    € ÐBÐBÐB¨b� bÑ)Ô)ÐBÐBÐBrK   r_   c              3  óL   •K  — | ]} ‰|d          |d         ‰¬¦  «        V — ŒdS )r‹   rò   rž  NrX   )rw   rû   rg   r»  s     €€rI   ry   z2SingleBlockManager.__setstate__.<locals>.<genexpr>F  sP   øè è € ð  ð  àð �˜q œ{¨A¨j¬MÀÐEÑEÔEð ð  ð  ð  ð  ð  rK   r]   z*pre-0.14.1 pickles are no longer supported)rg   r`   rE   r1   )rP   rz   rH   r_   r]   rd   Ú_post_setstate)rf   Ústaterg   r»  s     @@rI   Ú__setstate__zSingleBlockManager.__setstate__7  sì   øø€ ð	Dð 	Dð 	Dð 	Dõ �e�UÑ#Ô#ð 		T­¨E©
¬
°aª¨¸HÈÈaÌÐ<PÐ<PØ˜!”H˜XÔ&ˆEØBÐB°E¸&´MÐBÑBÔBˆDŒIÝ�t”y‘>”>ˆDÝð  ð  ð  ð  ð  à˜xœð ñ  ô  ñ ô ˆDŒKˆKõ
 &Ð&RÑSÔSÐSà×ÒÑÔÐÐÐrK   c                ó   — d S rb   rX   re   s    rI   rÀ  z!SingleBlockManager._post_setstateO  s   € ØˆrK   c                ó   — | j         d         S r¦   rÏ   re   s    rI   r=  zSingleBlockManager._blockR  s   € àŒ{˜1Œ~ÐrK   c                ó&   — | j         d         j        S )zA
        Quick access to the backing array of the Block.
        r   )r]   r‹   re   s    rI   rÄ   zSingleBlockManager.arrayV  s   € ð Œ{˜1Œ~Ô$Ð$rK   c                ó   — dS ©zcompat with BlockManagerNrX   re   s    rI   rZ   zSingleBlockManager._blknos_  ó	   € ð ˆtrK   c                ó   — dS rÇ  rX   re   s    rI   r[   zSingleBlockManager._blklocse  rÈ  rK   ró   únpt.NDArray[np.bool_]c                ó  — | j         }t          |¦  «        dk    rF|                     ¦   «         r2 t          | ¦  «        |                     d¬¦  «        | j        ¦  «        S |j        |         }t          |t          j	        ¦  «        r|j
        j        dk    rd }n|j        }t          t          dt          |¦  «        ¦  «        ¦  «        } t          |¦  «        ||d|¬¦  «        }| j        |         } t          | ¦  «        ||¦  «        S )Nr   Fr4  rû   r‡   ró  )r=  rH   râ   rŽ   r:  r  r‹   rP   rR   r8  rL   rø  r±   r   rŒ   )rf   ró   r�   rÄ   r±   r‘   rÕ   Únew_idxs           rI   Úget_rows_with_maskz%SingleBlockManager.get_rows_with_maskj  sí   € àŒkˆÝˆw‰<Œ<˜!ÒÐ §¢¡¤ÐØ•4˜‘:”:˜cŸhšh¨E˜hÑ2Ô2°D´JÑ?Ô?Ð?Ø”
˜7Ô#ˆå�g�rœzÑ*Ô*ð 	¨w¬}Ô/AÀSÒ/HÐ/HàˆDˆDð ”8ˆDå�E !¥S¨¡Z¤ZÑ0Ô0Ñ1Ô1ˆØ•�S‘	”	˜%¨2°A¸DÐAÑAÔAˆà”*˜WÔ%ˆØ�t�D‰zŒz˜% Ñ)Ô)Ð)rK   r¾  rŒ   r=   c                óZ  — || j         k    rt          d¦  «        ‚| j        }|j        |         }t	          t          dt          |¦  «        ¦  «        ¦  «        } t          |¦  «        ||d|j        ¬¦  «        }| j	         
                    |¦  «        } t          | ¦  «        ||¦  «        S )Nr�  r   r‡   ró  )rg   r   r=  r‹   r   rŒ   rH   rŽ   r±   r  Ú_getitem_slice)rf   r¾  r˜   r�   rÄ   r‘   rÕ   r’  s           rI   Ú	get_slicezSingleBlockManager.get_slice~  sŸ   € ð �4”9ÒÐÝÐBÑCÔCÐCàŒkˆØ”
˜5Ô!ˆÝ�E !¥S¨¡Z¤ZÑ0Ô0Ñ1Ô1ˆð •�S‘	”	˜%¨2°A¸C¼HÐEÑEÔEˆØ”J×-Ò-¨eÑ4Ô4ˆ	Ø�t�D‰zŒz˜% Ñ+Ô+Ð+rK   c                ó   — | j         d         S r¦   r§   re   s    rI   r  zSingleBlockManager.index�  r¨   rK   r>   c                ó   — | j         j        S rb   )r=  rL   re   s    rI   rL   zSingleBlockManager.dtype‘  s   € àŒ{Ô Ð rK   r¾   c                óN   — t          j        | j        j        gt          ¬¦  «        S )NrT   )rR   rÄ   r=  rL   rO   re   s    rI   rÊ   zSingleBlockManager.get_dtypes•  s   € ÝŒx˜œÔ*Ð+µ6Ð:Ñ:Ô:Ð:rK   c                ó4   — | j                              ¦   «         S )z$The array that Series.values returns)r=  Úexternal_valuesre   s    rI   rÕ  z"SingleBlockManager.external_values˜  s   € àŒ{×*Ò*Ñ,Ô,Ð,rK   c                ó   — | j         j        S )z%The array that Series._values returns)r=  r‹   re   s    rI   Úinternal_valuesz"SingleBlockManager.internal_valuesœ  s   € àŒ{Ô!Ð!rK   rB   c                ó   — | j         j        S )z#The array that Series.array returns)r=  r  re   s    rI   r  zSingleBlockManager.array_values   ó   € àŒ{Ô'Ð'rK   c                ón   — | j         j        r|                      d¬¦  «        S |                      ¦   «         S )NFr4  )r=  r|  r:  r“   re   s    rI   r~  z#SingleBlockManager.get_numeric_data¤  s3   € ØŒ;Ô!ð 	)Ø—9’9 %�9Ñ(Ô(Ð(Ø�ŠÑ Ô Ð rK   c                ó   — | j         j        S rb   )r=  Ú_can_hold_nare   s    rI   rÜ  zSingleBlockManager._can_hold_na©  rÙ  rK   c                ó�  — |                       d¦  «        s5| j                             d¬¦  «        f| _        |                      ¦   «          | j        }t          |t          j        ¦  «        rt          |j
        |¦  «        }t          |t          j        ¦  «        r&|j        dk    rt          |¦  «        dk    r|d         }|||<   dS )a  
        Set values with indexer.

        For SingleBlockManager, this backs s[indexer] = value

        This is an inplace version of `setitem()`, mutating the manager/values
        in place, not returning a new Manager (and Block), and thus never changing
        the dtype.
        r   Tr4  r‡   )r   .N)r®   r=  r:  r]   Ú_reset_cacherÄ   rP   rR   r8  r   rL   rg   rH   )rf   ró   r  r�   s       rI   r<  z"SingleBlockManager.setitem_inplace­  s»   € ð ×%Ò% aÑ(Ô(ð 	 Øœ;×+Ò+°Ð+Ñ6Ô6Ð8ˆDŒKØ×ÒÑÔÐàŒjˆõ �c�2œ:Ñ&Ô&ð 	:õ (¨¬	°5Ñ9Ô9ˆEå�e�RœZÑ(Ô(ð 	"¨U¬Z¸1ª_¨_ÅÀUÁÄÈqÂÀà˜&”MˆEàˆˆG‰ˆˆrK   c                óÎ   — | j                              |¦  «        d         }|f| _        | j        d                              |¦  «        | j        d<   |                      ¦   «          | S )zy
        Delete single location from SingleBlockManager.

        Ensures that self.blocks doesn't become empty.
        r   )r=  r0  r]   r_   rÞ  )rf   ró   r’   s      rI   rT  zSingleBlockManager.ideleteÉ  s]   € ð Œ[×Ò Ñ(Ô(¨Ô+ˆØ�eˆŒØ”y ”|×*Ò*¨7Ñ3Ô3ˆŒ	�!‰Ø×ÒÑÔÐØˆrK   c                ó    — t          d¦  «        ‚)zY
        fast path for getting a cross-section
        return a view of the data
        zUse series._values[loc] insteadrc   )rf   rñ  s     rI   r   zSingleBlockManager.fast_xsÕ  s   € õ
 "Ð"CÑDÔDÐDrK   r‹   c                óœ   — || j         d         _        t          t          t	          |¦  «        ¦  «        ¦  «        | j         d         _        dS )a  
        Set the values of the single block in place.

        Use at your own risk! This does not check if the passed values are
        valid for the current Block/SingleBlockManager (length, dtype, etc),
        and this does not properly keep track of references.
        r   N)r]   r‹   r   rŒ   rH   r  )rf   r‹   s     rI   Ú
set_valueszSingleBlockManager.set_valuesÜ  s<   € ð !'ˆŒ�AŒÔÝ#1µ%½¸F¹¼Ñ2DÔ2DÑ#EÔ#EˆŒ�AŒÔ Ð Ð rK   r×   c                ó„   — |j         dk    rdS | j        d         j        }|j        d         j        }t          ||¦  «        S )r`  r‡   Fr   )rg   r]   r‹   r&   )rf   r×   ÚleftÚrights       rI   rÚ   z SingleBlockManager._equal_valuesé  s@   € ð Œ:˜Š?ˆ?Ø�5ØŒ{˜1Œ~Ô$ˆØ”˜Q”Ô&ˆÝ˜D %Ñ(Ô(Ð(rK   c                ó¨   — | j         } ||¦  «        }t          t          |¦  «        ¦  «        }t          | ¦  «                             ||¦  «        }|S rb   )rÄ   r/   rH   rŽ   rª  )rf   r   r�   r‹  r  r³   s         rI   rX  z!SingleBlockManager.grouped_reduceõ  sI   € ØŒjˆØˆd�3‰iŒiˆÝ�c #™hœhÑ'Ô'ˆå�4‰jŒj×#Ò# C¨Ñ/Ô/ˆØˆ
rK   )rE   r¤  r¢  )rÕ   r1   r˜   r.   rl   ri   rE   rm   rÑ  rb   )rÄ   r<   r  r.   r±   r  rE   rŠ   )r«  r.   rE   rá  )r   rÕ  rØ  )rE   r1   )rE   r<   )ró   rÊ  rE   r   )r¾  rŒ   r˜   r=   rE   rŠ   rÔ  )rE   r>   rÖ  )rE   rB   rÒ  rÓ  )rE   rŠ   )r‹   r<   rE   rm   r×  ))rÓ   rÙ  rÚ  rÛ  rÞ  rg   rk   rj   rÜ  r¤   ro   rß  r€   rª  r®  r®   r¸  rÂ  rÀ  r   r=  r   rÄ   rZ   r[   rÍ  rÐ  r  rL   rÊ   rÕ  r×  r  r~  rÜ  r<  rT  r   râ  rÚ   rX  rX   rK   rI   rŠ   rŠ   ß  s  € € € € € Ø$Ð$àðð ð ñ „Xðð ÐØÐØ€IØ€Oð "'ð	ð ð ð ð ð ð
?ð 
?ð 
?ñ „[ð
?ð àLPð	!ð 	!ð 	!ð 	!ñ „[ð	!ð	Jð 	Jð 	Jð 	Jð7ð 7ð 7ð 7ð 7ðBð Bð Bð&ð ð ð ð0ð ð ð ð ðð ð ñ „^ðð Øð%ð %ð %ñ „Xñ „Uð%ð ðð ð ñ „Xðð
 ðð ð ñ „Xðð*ð *ð *ð *ð(,ð ,ð ,ð ,ð ,ð ðð ð ñ „Xðð ð!ð !ð !ñ „Xð!ð;ð ;ð ;ð ;ð-ð -ð -ð"ð "ð "ð(ð (ð (ð (ð!ð !ð !ð !ð
 ð(ð (ð (ñ „Xð(ðð ð ð ð8
ð 
ð 
ð 
ðEð Eð EðFð Fð Fð Fð
)ð 
)ð 
)ð 
)ðð ð ð ð rK   rŠ   Tr]   r|   r_   r^   r�  ri   rl   c                ó  — 	 t          | ||¬¦  «        }na# t          $ rT}d„ | D ¦   «         }t          d„ |D ¦   «         ¦  «        }t          ||d         j        dd …         ||¦  «         Y d }~nd }~ww xY w|r|                     ¦   «          |S )Nr�  c                ó   — g | ]	}|j         ‘Œ
S rX   rÎ   rÁ   s     rI   rÂ   z4create_block_manager_from_blocks.<locals>.<listcomp>	  s   € Ð/Ð/Ð/ �#”*Ð/Ð/Ð/rK   c              3  ó0   K  — | ]}|j         d          V — ŒdS )r   N)r{   )rw   r�   s     rI   ry   z3create_block_manager_from_blocks.<locals>.<genexpr>	  s(   è è € Ð7Ð7¨˜œ	 !œÐ7Ð7Ð7Ð7Ð7Ð7rK   r   r‡   )rá  rž   rë  rì  r{   r%  )r]   r_   r�  rl   r³   ÚerrrÐ   rî  s           rI   Ú create_block_manager_from_blocksrë  	  sÄ   € ðLÝ˜6 4Ð:JÐKÑKÔKˆˆøåð Lð Lð LØ/Ð/¨Ð/Ñ/Ô/ˆÝÐ7Ð7°Ð7Ñ7Ô7Ñ7Ô7ˆ	Ý  ¨F°1¬I¬O¸A¸B¸BÔ,?ÀÀsÑKÔKÐKÐKÐKÐKÐKÐKøøøøðLøøøð
 ð #Ø× Ò Ñ"Ô"Ð"Ø€Js   ‚ •
A3ŸA
A.Á.A3rÐ   rË   r±   r<  c                óþ   — 	 t          | ||¦  «        }t          ||d¬¦  «        }nA# t          $ r4}t          t	          | ¦  «        | d         j        ||¦  «         Y d }~nd }~ww xY w|r|                     ¦   «          |S )NFr�  r   )Ú_form_blocksrá  rž   rì  rH   r{   r%  )rÐ   r_   r�  r±   r]   r³   Úes          rI   Ú'create_block_manager_from_column_arraysrï  	  s    € ð"HÝ˜f k°4Ñ8Ô8ˆÝ˜6 4¸%Ð@Ñ@Ô@ˆˆøÝð Hð Hð HÝ ¥ V¡¤¨f°Q¬i¬o¸tÀQÑGÔGÐGÐGÐGÐGÐGÐGøøøøðHøøøàð #Ø× Ò Ñ"Ô"Ð"Ø€Js   ‚#& ¦
A$°*AÁA$rî  r`   Úblock_shaper@   rî  úValueError | Noner
   c                ój  — t          t          t          | g|¢¦  «        ¦  «        }t          |¦  «        dk    r|ddd…         }t          d„ |D ¦   «         ¦  «        }t          |¦  «        dk    r|ddd…         }||k    r|�|‚|d         dk    rt	          d¦  «        ‚t	          d|› d|› �¦  «        ‚)	z.raise a helpful message about our constructionr2  Nrƒ  c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rb   ru   rv   s     rI   ry   z+raise_construction_error.<locals>.<genexpr>C	  s(   è è € Ð+Ð+ •C˜‘G”GÐ+Ð+Ð+Ð+Ð+Ð+rK   r   z)Empty data passed with indices specified.zShape of passed values is z, indices imply )rz   Úmapr`   rH   rž   )rî  rð  r_   rî  ÚpassedÚimplieds         rI   rì  rì  7	  sÒ   € õ •3•s˜YÐ5¨Ð5Ñ6Ô6Ñ7Ô7€Få
ˆ6�{„{�aÒÐØ˜˜˜"˜”ˆåÐ+Ð+ dÐ+Ñ+Ô+Ñ+Ô+€Gå
ˆ7�|„|�qÒÐØ˜$˜$˜B˜$”-ˆð �ÒÐ˜Q˜]ØˆØ�1„~˜ÒÐÝÐDÑEÔEÐEÝ
ÐS°&ÐSÐSÈ'ÐSÐSÑ
TÔ
TÐTrK   Útupútuple[int, ArrayLike]útuple[int, DtypeObj]c                óf   — | d         j         }t          |¦  «        rt          |¦  «        }nd}||fS )Nr‡   r   )rL   r   Úid)r÷  rL   Úseps      rI   Ú_grouping_funcrý  T	  s;   € Ø�ŒFŒL€Eå˜5Ñ!Ô!ð õ �‰iŒiˆˆàˆà�ˆ:ÐrK   c                óÊ  ‡— t          | ¦  «        }|st          ||¦  «        S t          j        |t          ¦  «        }g }|D �] \  \  }}}t          |¦  «        Št          |t          j        ¦  «        r˜|j	        dv }	t          |j        t          t          f¦  «        rt          j        t          ¦  «        }t          ||¦  «        \  }
}|	rt!          |
¦  «        }
 ‰|
t#          |¦  «        d¬¦  «        }|                     |¦  «         ŒÊt'          |¦  «        r$ˆfd„|D ¦   «         }|                     |¦  «         Œýˆfd„|D ¦   «         }|                     |¦  «         �Œ"|S )Nr„  r2  rö  c           	     ó^   •— g | ])} ‰|d          t          |d         ¦  «        d¬¦  «        ‘Œ*S )r‡   r   r2  rö  r²  ©rw   rê  Ú
block_types     €rI   rÂ   z _form_blocks.<locals>.<listcomp>~	  sJ   ø€ ð ð ð àð �
˜1˜Qœ4­>¸!¸A¼$Ñ+?Ô+?ÀaÐHÑHÔHðð ð rK   c           	     óz   •— g | ]7} ‰t          |d          d¦  «        t          |d         ¦  «        d¬¦  «        ‘Œ8S )r‡   r2  r   rö  )r3   r   r   s     €rI   rÂ   z _form_blocks.<locals>.<listcomp>…	  s^   ø€ ð ð ð ð ð �
Ý& q¨¤t¨QÑ/Ô/½>È!ÈAÌ$Ñ;OÔ;OÐVWðñ ô ðð ð rK   )rµ   Ú _tuples_to_blocks_no_consolidater}  r~  rý  r5   rP   rR   rL   rø  Ú
issubclassrŽ   rS   ÚbytesrO   Ú_stack_arraysr+   r   rt  r   rv  )rÐ   r�  r±   ÚtuplesÚgrouperrR  rÁ  rL   Ú	tup_blockÚ	is_dtliker‹   r‰   r�   Údtype_blocksr  s                 @rI   rí  rí  a	  s›  ø€ Ý�vÑÔ€Fàð >Ý/°¸Ñ=Ô=Ð=õ Ô ­Ñ7Ô7€Gà€CØ!(ð %ñ %Ñ‰
ˆˆE�IÝ# EÑ*Ô*ˆ
å�e�RœXÑ&Ô&ð 	%Øœ
 dÐ*ˆIå˜%œ*¥s­E lÑ3Ô3ð )Ýœ¥Ñ(Ô(�å -¨i¸Ñ ?Ô ?ÑˆF�IØð @Ý7¸Ñ?Ô?�Ø�*˜V­~¸iÑ/HÔ/HÈqÐQÑQÔQˆCØ�JŠJ�s‰OŒOˆOˆOå  Ñ'Ô'ð 	%ðð ð ð à"ðñ ô ˆLð �JŠJ�|Ñ$Ô$Ð$Ð$ðð ð ð ð #ð	ñ ô ˆLð �JŠJ�|Ñ$Ô$Ð$Ñ$Ø€JrK   c                ó:   — d„ t          | |d¬¦  «        D ¦   «         S )Nc                óv   — g | ]6\  \  }}}t          t          |d ¬¦  «        t          |¦  «        |¬¦  «        ‘Œ7S )r2  rž  r7  )r8   r3   r   )rw   r©   r�   rº   s       rI   rÂ   z4_tuples_to_blocks_no_consolidate.<locals>.<listcomp>‘	  s]   € ð ð ð ñ ‰Xˆa��sõ 	Ý˜s¨Ð+Ñ+Ô+µ~ÀaÑ7HÔ7HÈsð	
ñ 	
ô 	
ðð ð rK   Trà   )rã   )r  r±   s     rI   r  r  �	  s4   € ðð õ  # 6¨4¸Ð=Ñ=Ô=ð	ñ ô ð rK   c                óÈ   — t          | ddiŽ\  }}|d         }t          |¦  «        g|j        ¢R }t          j        ||¬¦  «        }t          |¦  «        D ]
\  }}|||<   Œ||fS )Nrá   Tr   rT   )rã   rH   r{   rR   r£  rµ   )	r  rL   r‰   rÐ   Úfirstr{   Ústackedr©   r�   s	            rI   r  r  ™	  s   € Ý˜VÐ1¨DÐ1Ð1Ñ€Iˆvà�1ŒI€EÝ�‰[Œ[Ð'˜5œ;Ð'Ð'€EåŒh�u EÐ*Ñ*Ô*€GÝ˜FÑ#Ô#ð ð ‰ˆˆ3Øˆ�‰
ˆ
à�IÐÐrK   r\   c                óì   — d„ }t          j        t          | |¬¦  «        |¦  «        }g }|D ]:\  \  }}}t          t	          |¦  «        ||¬¦  «        \  }}t          ||¦  «        }Œ;t          |¦  «        S )zJ
    Merge blocks having same dtype, exclude non-consolidating blocks
    c                ó   — | j         S rb   )Ú_consolidate_key)rê  s    rI   rz  z_consolidate.<locals>.<lambda>«	  s	   € �QÔ'€ rK   r{  )rL   Úcan_consolidate)r}  r~  r  Ú_merge_blocksr<  r4   rz   )	r]   Úgkeyr  rx  r¹  rL   Úgroup_blocksÚmerged_blocksrÁ  s	            rI   r˜  r˜  ¦	  s”   € ð
 (Ð'€DÝÔ¥ v°4Ð 8Ñ 8Ô 8¸$Ñ?Ô?€Gà €JØ3:ð >ð >Ñ/Ñ!Ð	˜5 <Ý(Ý�ÑÔ eÐ=Mð
ñ 
ô 
Ñˆ�qõ # =°*Ñ=Ô=ˆ
ˆ
Ý�ÑÔÐrK   r  útuple[list[Block], bool]c                ó   — t          | ¦  «        dk    r| dfS |ròt          j        d„ | D ¦   «         ¦  «        }t          | d         j        t          j        ¦  «        rt          j        d„ | D ¦   «         ¦  «        }nId„ | D ¦   «         }t          t          t                   |¦  «        }|d          	                    |d¬¦  «        }t          j
        |¦  «        }||         }||         }t          |¦  «        }t          ||¬¦  «        gd	fS | dfS )
Nr‡   Fc                ó&   — g | ]}|j         j        ‘ŒS rX   ri  rk  s     rI   rÂ   z!_merge_blocks.<locals>.<listcomp>À	  s   € Ð&KÐ&KÐ&K¸q q¤zÔ':Ð&KÐ&KÐ&KrK   r   c                ó   — g | ]	}|j         ‘Œ
S rX   rÎ   rk  s     rI   rÂ   z!_merge_blocks.<locals>.<listcomp>É	  s   € Ð#=Ð#=Ð#=° A¤HÐ#=Ð#=Ð#=rK   c                ó   — g | ]	}|j         ‘Œ
S rX   rÎ   rÁ   s     rI   rÂ   z!_merge_blocks.<locals>.<listcomp>Ë	  s   € Ð2Ð2Ð2 C�S”ZÐ2Ð2Ð2rK   r3  rˆ   T)rH   rR   rn  rP   rL   Úvstackr   r   r)   Ú_concat_same_typeÚargsortr   r8   )	r]   rL   r  r®  Ú
new_valuesÚbvalsÚbvals2r   r‘   s	            rI   r  r  ·	  s!  € õ ˆ6�{„{�aÒÐØ�uˆ}Ðàð >õ ”~Ð&KÐ&KÀFÐ&KÑ&KÔ&KÑLÔLˆõ �f˜Q”i”o¥r¤xÑ0Ô0ð 		Eõ
 œÐ#=Ð#=°fÐ#=Ñ#=Ô#=Ñ>Ô>ˆJˆJà2Ð2¨6Ð2Ñ2Ô2ˆEÝ�(Õ#>Ô?ÀÑGÔGˆFØ œ×4Ò4°VÀ!Ð4ÑDÔDˆJå”*˜\Ñ*Ô*ˆØ Ô(ˆ
Ø# GÔ,ˆå˜LÑ)Ô)ˆÝ˜Z°2Ð6Ñ6Ô6Ð7¸Ð=Ð=ð �5ˆ=ÐrK   r©  rª  Úlengthr­  c                ór  — t          | t          ¦  «        rd| t          j        | |¦  «        fS t          | t          j        ¦  «        r| j        j        dk    r.t          | dd ¦  «        }t          t          | ¦  «        |¦  «        ‚t          | ¦  «        }|st          ||¦  «        }d|t          |¦  «        fS )NrŒ   r©   rL   Úfancy)rP   rŒ   r¶  Ú	slice_lenrR   r8  rL   rø  r÷   Ú	TypeErrorrŽ   r   r-   rH   )r©  r$  r­  rL   ró   s        rI   r´  r´  Ú	  sÃ   € õ Ð"¥EÑ*Ô*ð .àØÝÔ"Ð#3°VÑ<Ô<ð
ð 	
õ Ð+­R¬ZÑ8Ô8ð	;àÔ%Ô*¨cÒ1Ð1åÐ,¨g°tÑ<Ô<ˆEÝ�DÐ!1Ñ2Ô2°EÑ:Ô:Ð:å%Ð&6Ñ7Ô7ˆØð 	=Ý+¨G°VÑ<Ô<ˆGØ˜¥ W¡¤Ð-Ð-rK   r{   r<   c                ór  — t          | t          ¦  «        rut          |¦  «                             | j        ¦  «        }t          j        ||j        ¦  «        }|                     d| j        › d�¦  «        }t          j
        || ¬¦  «        S t          | ¦  «        r‘t          t          | ¦  «        } |                      ¦   «         }|                     g | ¬¦  «        }|\  }}	|dk    s
J |¦   «         ‚dt          j        |	ft
          j        ¬¦  «        z  }
|                     |
d|¬¦  «        S t          | t          ¦  «        r4|                      ¦   «         }|                     || ¬¦  «        }||d d …<   |S t          j        || ¬¦  «        }|                     |¦  «         | j        d	v rt/          |¦  «        }|S )
NzM8[ú]rT   r‡   rƒ  T)r­  r/  )r{   rL   r„  )rP   r!   r   Úas_unitÚunitrR   ÚfullÚ_valuerð   r(   Ú_simple_newr   r   r"   rû  rü  Úonesr  rÈ   Ú_emptyr£  r  rø  r+   )rL   r{   r/  ÚtsÚi8valuesÚ
dt64valuesr   Úmissing_arrÚncolsrW  Ú	empty_arrÚmissing_arr_nps               rI   rÌ  rÌ  ñ	  s¬  € Ý�%�Ñ)Ô)ð å�zÑ"Ô"×*Ò*¨5¬:Ñ6Ô6ˆÝ”7˜5 "¤)Ñ,Ô,ˆØ—]’]Ð#6¨¬Ð#6Ð#6Ð#6Ñ7Ô7ˆ
ÝÔ(¨¸5ÐAÑAÔAÐAå	˜UÑ	#Ô	#ð Ý•^ UÑ+Ô+ˆØ×(Ò(Ñ*Ô*ˆà×(Ò(¨°5Ð(Ñ9Ô9ˆØ‰ˆˆuØ˜Šzˆzˆz˜5‰zŒzˆzØ�œ % µ´Ð9Ñ9Ô9Ñ9ˆ	Ø×Ò 	°dÀzÐÑRÔRÐRÝ	�E�>Ñ	*Ô	*ð ð ×(Ò(Ñ*Ô*ˆØ—j’j u°E�jÑ:Ô:ˆØ#ˆ�A�A�A‰ØÐõ œ %¨uÐ5Ñ5Ô5ˆØ×Ò˜JÑ'Ô'Ð'àŒ:˜ÐÐÝ;¸NÑKÔKˆNØÐrK   )rC   rD   rE   rF   )rL   r>   rE   rM   )TT)
r]   r|   r_   r^   r�  ri   rl   ri   rE   rá  )
rÐ   rË   r_   r^   r�  ri   r±   r<  rE   rá  rb   )
rî  r`   rð  r@   r_   r^   rî  rñ  rE   r
   )r÷  rø  rE   rù  )rÐ   rË   r�  ri   r±   r<  rE   r|   )rE   r|   )rL   rM   )r]   r\   rE   r\   )r]   r|   rL   r>   r  ri   rE   r  )r©  rª  r$  r`   r­  ri   )rL   r>   r{   r@   rE   r<   )sÚ
__future__r   Úcollections.abcr   r   r   r}  Útypingr   r   r	   r
   r   r   r   rH  ÚnumpyrR   Úpandas._config.configr   Úpandas._libsr   r  r   r¶  r   Úpandas._libs.internalsr   r   Úpandas._libs.tslibsr   Úpandas.errorsr   r   Úpandas.util._decoratorsr   Úpandas.util._exceptionsr   Úpandas.util._validatorsr   Úpandas.core.dtypes.castr   r   r   Úpandas.core.dtypes.commonr   r   r   Úpandas.core.dtypes.dtypesr    r!   r"   r#   Úpandas.core.dtypes.genericr$   r%   Úpandas.core.dtypes.missingr&   r'   Úpandas.core.algorithmsÚcoreÚ
algorithmsÚpandas.core.arraysr(   Úpandas.core.arrays._mixinsr)   Úpandas.core.baser*   Úpandas.core.constructionr+   r,   Úpandas.core.indexersr-   Úpandas.core.indexes.apir.   r/   r0   Úpandas.core.internals.blocksr1   r2   r3   r4   r5   r6   r7   r8   Úpandas.core.internals.opsr9   r:   r;   Úpandas._typingr<   r=   r>   r?   r@   rA   Úpandas.api.extensionsrB   rJ   rU   rW   rá  rŠ   rë  rï  rì  rý  rí  r  r  r˜  r  r´  rÌ  rX   rK   rI   ú<module>rW     s9  ðØ "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð
 Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€à Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð 3Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð
 'Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø BÐ BÐ BÐ BÐ BÐ BØ )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð 7Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ð ð ð
	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð ð ð
 ð 5Ø)Ð)Ð)Ð)Ð)Ð)ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 5Ð4Ð4Ð4Ð4Ð4ð$ð $ð $ð $ð&
ð 
ð 
ð 
ðx
ð x
ð x
ð x
ð x
�|ñ x
ô x
ð x
ðvRTð RTð RTð RTð RT�<Ô,Ð.>ñ RTô RTð RTðj\ð \ð \ð \ð \Ð)ñ \ô \ð \ðL	 Ø!ð	ð ð ð ð ð4ð ð ð ð>  ð	Uð Uð Uð Uð Uð:
ð 
ð 
ð 
ð+ð +ð +ð +ð\ð ð ð ð
ð 
ð 
ð 
ðð ð ð ð" ð  ð  ð  ðF.ð .ð .ð .ð. ð  ð  ð  ð  ð  rK   