3
���h>\ � @ s� d dl mZmZmZmZmZmZmZmZm Z d dl
Zd dlm
Z
d dlmZmZ d dlmZ d dlmZmZmZ d dlmZmZ d dljjZd dlmZ d d l m!Z! d d
l"m#Z#m$Z$m%Z% d dl&m'Z' d dl(m)Z) d d
l*m+Z+ er�d dl,m-Z- ed�eed dd�d4dd�dd���Z.d5ed6 e/d�dd�Z0d7e/d�dd �Z1d8e/d�d!d"�Z2d9de/d�d#d$�Z3d%d&� Z4ed�eed' dd�d:deee
ee
f eee
ee
f eee
ee
f dd(�d)d'���Z5d;e/e6dd*�d+d,�Z7d<e6d-�d.d/�Z8d=e/d1�d2d3�Z9dS )>� ) �
TYPE_CHECKING�Callable�Dict�List�Optional�Sequence�Tuple�Union�castN)�Label)�Appender�Substitution)�maybe_downcast_to_dtype)�is_integer_dtype�is_list_like� is_scalar)�ABCDataFrame� ABCSeries)�_shared_docs)�Grouper)�Index�
MultiIndex�get_objs_combined_axis)�concat)�cartesian_product)�Series)� DataFramez
data : DataFrame�pivot_table� )�indents�meanFT�Allr )�returnc
C s t |�}t |�}t|t�rvg }
g }xD|D ]<}t| ||||||||| d�
}
|
j|
� |jt|d|�� q(W t|
|dd�S || }|d k }|�r>t|�r�d}t|�}n
d}|g}x|D ]}|| kr�t|��q�W g }xP|| D ]D}t|t �r�|j
}y|| k�r|j|� W q� tk
�r Y q�X q�W t|�t| j
�k �r�| | } nJ| j
}x:|D ]2}y|j|�}W n tttfk
�rx Y nX �qJW t|�}| j|| d�}|j|�}|�r$t|t��r$t|j
��r$|jdd �}xX|D ]P}|| k�r�t| | ��r�||k�r�t|| � �r�t|| | | j�||< |