ó
šxŠ\c           @  sà   d  d l  m Z d  d l m Z d  d l Z d  d l Z d  d l Z d  d l m Z 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 d  d l m Z d  d l m Z m Z d e f d	 „  ƒ  YZ d S(
   iÿÿÿÿ(   t   print_function(   t   datetimeN(   t   StringIOt   lranget   ranget   zip(   t	   DataFramet   Indext   Seriest	   Timestampt   compatt
   date_range(   t   TestData(   t   assert_frame_equalt   assert_series_equalt   TestDataFrameReplacec           B  sª  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j j d d d d d d g ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d  „  Z e j j d! e  i d" d# d$ g d% 6ƒ d" d& e  i d& d# d$ g d% 6ƒ f e  i d" d# d$ g d% 6d' e! j" ƒd" d& e  i d& d# d$ g d% 6d' e! j" ƒf e  i d" d# d$ g d% 6d' e! j# ƒd" d& e  i d& d# d$ g d% 6d' e! j# ƒf e  i e$ e% e$ g d( 6ƒ e% e$ e  i e$ e$ e$ g d( 6ƒ f e  i d) d* d+ g d, 6ƒ d) d& e  i d- d* d+ g d, 6ƒ f e  i e& e' d. d/ d0 ƒ e' d. d1 d0 ƒ e' d. d/ d0 ƒ g ƒ d2 6ƒ e' d. d/ d0 ƒ e' d. d1 d0 ƒ e  i e& e' d. d1 d0 ƒ g d$ ƒ d2 6ƒ f e  i e' d3 d4 d5 ƒ g d6 6d7 g d8 6ƒ d7 d9 e  i e' d3 d4 d5 ƒ g d6 6d9 g d8 6ƒ f e  i e( d: d; d$ d< d= ƒd> 6d& e! j) d# g d? 6ƒ e* d@ d< d= ƒe* dA d< d= ƒe  i e* d: d< d= ƒe* dA d< d= ƒe* dB d< d= ƒg d> 6d& e! j) d# g d? 6ƒ f g ƒ dC „  ƒ Z+ dD „  Z, dE „  Z- dF „  Z. dG „  Z/ dH „  Z0 dI „  Z1 dJ „  Z2 dK „  Z3 dL „  Z4 dM „  Z5 dN „  Z6 dO „  Z7 dP „  Z8 dQ „  Z9 dR „  Z: dS „  Z; dT „  Z< dU „  Z= dV „  Z> e j j dW d& dX i d" d" d# g d> 6d/ e! j) d1 g d? 6dY dZ d[ g d\ 6f e! j) dX i d& d" d# g d> 6d] d^ d^ g d? 6dY dZ d[ g d\ 6f d_ d` i d& d" d# g d> 6d/ e! j) d1 g d? 6dY dZ d[ g d\ 6f d& d# g dX i d" d" d# g d> 6d/ e! j) d1 g d? 6dY dZ d[ g d\ 6f d" d# g da i d& d& d& g d> 6d/ e! j) d1 g d? 6dY dZ d[ g d\ 6f dc dX i d& d# d# g d> 6d/ e! j) d1 g d? 6dY dZ d[ g d\ 6f dZ d[ g d` i d& d" d# g d> 6d/ e! j) d1 g d? 6dY dY dY g d\ 6f g ƒ db „  ƒ Z? RS(d   c         C  sG  t  j |  j d d *t  j |  j d d )|  j j ƒ  } | j t  j d d t ƒt | |  j j d ƒ ƒ |  j } t  j | j	 d d … | j
 j d ƒ f <t  j | j	 d d  … | j
 j d ƒ f <|  j j t  j d ƒ } |  j j d	 d ƒ } t | | ƒ |  j j ƒ  } | j t  j g d g d t ƒt | |  j j d ƒ ƒ d  S(
   Nt   Ai   iûÿÿÿi    t   inplacei   t   fooiöÿÿÿt   value(   t   npt   nant   tsframet   copyt   replacet   TrueR   t   fillnat   mixed_framet   iloct   columnst   get_loc(   t   selfR   t   mft   resultt   expected(    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_inplace   s    	((c   	      C  s3  i t  d ƒ d 6t  d ƒ d 6} t | ƒ } i t d ƒ d 6t  d ƒ d 6} t | ƒ } | j d t j d t ƒ} t | | j d ƒ ƒ | j d t j d t ƒ} t | | j d ƒ ƒ | j d	 d
 d t ƒ} | j	 ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j d	 d
 d t ƒ} | j	 ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j t
 j d ƒ t j d t ƒ} t | | j d ƒ ƒ | j t
 j d ƒ t j d t ƒ} t | | j d ƒ ƒ | j t
 j d	 ƒ d
 ƒ } | j	 ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j t
 j d	 ƒ d
 ƒ } | j	 ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j d t
 j d	 ƒ d d
 ƒ } | j	 ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j d d	 d d
 ƒ } | j	 ƒ  } d d d d g | d <t | ƒ } t | | ƒ d  S(   Ns   ab..t   at   efght   bi   s   \s*\.\s*t   regext   .s
   \s*(\.)\s*s   \1\1\1s   ...R   (   t   listR   R   R   R   R   R   R   R   R   t   ret   compile(	   R   t   objt   dfobjt   mixt   dfmixt   rest   objct   expect   mixc(    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_regex_replace_scalar*   sT      $$!c   	      C  sÄ  i t  d ƒ d 6t  d ƒ d 6} t | ƒ } i t d ƒ d 6t  d ƒ d 6} t | ƒ } | j ƒ  } | j d t j d t d t ƒt | | j	 d	 ƒ ƒ | j ƒ  } | j d t j d t d t ƒt | | j	 d	 ƒ ƒ | j ƒ  } | j d
 d d t d t ƒ| j ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j ƒ  } | j d
 d d t d t ƒ| j ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j ƒ  } | j t
 j d ƒ t j d t d t ƒt | | j	 d	 ƒ ƒ | j ƒ  } | j t
 j d ƒ t j d t d t ƒt | | j	 d	 ƒ ƒ | j ƒ  } | j t
 j d
 ƒ d d t d t ƒ| j ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j ƒ  } | j t
 j d
 ƒ d d t d t ƒ| j ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j ƒ  } | j d d d t j d t ƒ t | | j	 d	 ƒ ƒ | j ƒ  } | j d d d t j d t ƒ t | | j	 d	 ƒ ƒ | j ƒ  } | j d d
 d d d t ƒ | j ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j ƒ  } | j d d
 d d d t ƒ | j ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j ƒ  } | j d t
 j d ƒ d t j d t ƒ t | | j	 d	 ƒ ƒ | j ƒ  } | j d t
 j d ƒ d t j d t ƒ t | | j	 d	 ƒ ƒ | j ƒ  } | j d t
 j d
 ƒ d d d t ƒ | j ƒ  } d d d d g | d <t | ƒ } t | | ƒ | j ƒ  } | j d t
 j d
 ƒ d d d t ƒ | j ƒ  } d d d d g | d <t | ƒ } t | | ƒ d  S(   Ns   ab..R$   R%   R&   i   s   \s*\.\s*R'   R   R(   s
   \s*(\.)\s*s   \1\1\1s   ...R   (   R)   R   R   R   R   R   R   R   R   R   R*   R+   (	   R   R,   R-   R.   R/   R0   R1   R2   R3   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt!   test_regex_replace_scalar_inplacel   s       ((((c         C  sP  i t  d ƒ d 6t  d ƒ d 6t  d ƒ d 6} t | ƒ } d d g } t j d	 g } | j | | d
 t ƒ} t i d d t j t j g d 6d	 g d d g d 6d d	 d d g d 6ƒ } t | | ƒ d d g } d d g } | j | | d
 t ƒ} t i d d d d g d 6d d d d g d 6d d d d g d 6ƒ } t | | ƒ d d g } d d	 g } | j | | d
 t ƒ} t i d d d d g d 6d	 d d d g d 6d d	 d d g d 6ƒ } t | | ƒ d d g } d d	 g } | j d | d
 | ƒ } t i d d d d g d 6d	 d d d g d 6d d	 d d g d 6ƒ } t | | ƒ d  S(   Ns   ab..R$   R%   R&   t   helot   cs   \s*\.\s*s   e|f|gt   crapR'   i   t   ht   lt   os
   \s*(\.)\s*s   (e|f|g)s   \1\1s   \1_craps   ..t   e_crapt   f_crapt   g_crapt   et   ft   gR   (   R)   R   R   R   R   R   R   (   R   R,   R-   t   to_replace_rest   valuesR0   R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_regex_replace_list_objã   s<    -)$"
"
c         C  s  i t  d ƒ d 6t  d ƒ d 6t  d ƒ d 6} t | ƒ } d d g } t j d	 g } | j ƒ  } | j | | d
 t d t ƒt i d d t j t j g d 6d	 g d d g d 6d d	 d d g d 6ƒ } t | | ƒ d d g } d d g } | j ƒ  } | j | | d
 t d t ƒt i d d d d g d 6d d d d g d 6d d d d g d 6ƒ } t | | ƒ d d g } d d	 g } | j ƒ  } | j | | d
 t d t ƒt i d d d d g d 6d	 d d d g d 6d d	 d d g d 6ƒ } t | | ƒ d d g } d d	 g } | j ƒ  } | j d | d | d
 t ƒ t i d d d d g d 6d	 d d d g d 6d d	 d d g d 6ƒ } t | | ƒ d  S(   Ns   ab..R$   R%   R&   R6   R7   s   \s*\.\s*s   e|f|gR8   R   R'   i   R9   R:   R;   s
   \s*(\.)\s*s   (e|f|g)s   \1\1s   \1_craps   ..R<   R=   R>   R?   R@   RA   R   (   R)   R   R   R   R   R   R   R   (   R   R,   R-   RB   RC   R0   R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt#   test_regex_replace_list_obj_inplace  sD    -)$"
"
c   	      C  s-  i t  d ƒ d 6t d ƒ d 6} t | ƒ } d d g } t j d g } i t  d ƒ d 6t d ƒ d 6t d ƒ d 6} t | ƒ } | j | | d	 t ƒ} t i | d d 6d d t j t j g d 6d
 d d d g d 6ƒ } t | | ƒ d d g } d d g } | j | | d	 t ƒ} t i | d d 6d d d d g d 6ƒ } t | | ƒ d d d g } d d d g } | j | | d	 t ƒ} t i | d d 6d d d d g d 6ƒ } t | | ƒ d d d g } d d d g } | j d	 | d | ƒ } t i | d d 6d d d d g d 6ƒ } t | | ƒ d  S(   Ni   R$   s   ab..R&   s   \s*\.\s*R8   t   haloR7   R'   R9   R:   R;   s
   \s*(\.)\s*s   (a|b)s   \1\1s   \1_crapt   a_crapt   b_craps   ..s   (b)R   (   R   R)   R   R   R   R   R   R   (	   R   R.   R/   RB   RC   t   mix2t   dfmix2R0   R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_regex_replace_list_mixed=  s4     -***c         C  s!  i t  d ƒ d 6t d ƒ d 6} t | ƒ } d d g } t j d g } | j ƒ  } | j | | d t d t ƒt i | d d 6d d t j t j g d 6ƒ } t | | ƒ d	 d
 g } d d g } | j ƒ  } | j | | d t d t ƒt i | d d 6d d d d g d 6ƒ } t | | ƒ d	 d d g } d d d g } | j ƒ  } | j | | d t d t ƒt i | d d 6d d d d g d 6ƒ } t | | ƒ d	 d d g } d d d g } | j ƒ  } | j d | d | d t ƒ t i | d d 6d d d d g d 6ƒ } t | | ƒ d  S(   Ni   R$   s   ab..R&   s   \s*\.\s*R8   R   R'   s
   \s*(\.)\s*s   (a|b)s   \1\1s   \1_crapRG   RH   s   ..s   (b)R   (	   R   R)   R   R   R   R   R   R   R   (   R   R.   R/   RB   RC   R0   R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt%   test_regex_replace_list_mixed_inplaced  s6     0**c         C  sŸ  i t  d ƒ d 6t d ƒ d 6d d t j d g d 6} t | ƒ } | j i d d 6i t j d 6d t ƒ} | j ƒ  } | j i d d 6i t j d 6d	 t d t ƒt i | d d 6d d t j t j g d 6| d d 6ƒ } t | | ƒ t | | ƒ | j i d
 d 6i d d 6d t ƒ} | j ƒ  } | j i d
 d 6i d d 6d	 t d t ƒt i | d d 6d d d d g d 6| d d 6ƒ } t | | ƒ t | | ƒ | j d i d
 d 6d i d d 6ƒ } | j ƒ  } | j d i d
 d 6d i d d 6d	 t ƒ t i | d d 6d d d d g d 6| d d 6ƒ } t | | ƒ t | | ƒ t i | d d 6t j d d d g d 6| d d 6ƒ } | j d i t j d 6d t ƒ} | j ƒ  } | j d i t j d 6d t d	 t ƒt | | ƒ t | | ƒ | j d i t j d 6d t ƒ} | j ƒ  } | j d d d i t j d 6d	 t ƒ t i | d d 6t j d d d g d 6| d d 6ƒ } t | | ƒ t | | ƒ d  S(   Ni   R$   s   ab..R&   t   dR7   s   \s*\.\s*R'   R   s
   \s*(\.)\s*s   \1tys   .tyR   R(   (	   R   R)   R   R   R   R   R   R   R   (   R   R.   R/   R0   t   res2R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_regex_replace_dict_mixed‹  sP    6) *&#$&#$'"&"&'c         C  sg  i t  d ƒ d 6t d ƒ d 6d d t j d g d 6} t | ƒ } | j i i t j d 6d 6d t ƒ} | j ƒ  } | j ƒ  } | j i i t j d 6d 6d	 t d t ƒ| j d i i t j d 6d 6ƒ } | j d i i t j d 6d 6d	 t ƒ t i | d d 6d d t j t j g d 6| d d 6ƒ } t | | ƒ t | | ƒ t | | ƒ t | | ƒ d  S(
   Ni   R$   s   ab..R&   RM   R7   s   \s*\.\s*R'   R   (	   R   R)   R   R   R   R   R   R   R   (   R   R.   R/   R0   RN   t   res4t   res3R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_regex_replace_dict_nestedÄ  s    6&*#'*c         C  sk   t  j i d d d g d 6ƒ } t  j i d d d g d 6ƒ } | j i d d	 6d
 t ƒ} t | | ƒ d  S(   Nt   abct   bcat   cabt   firsts   .bcs   bc.s   c.bR(   R$   R'   (   t   pdR   R   R   R   (   R   t   dfR"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt2   test_regex_replace_dict_nested_non_first_characterÕ  s    c         C  sŠ   t  j i d d d d d g d 6d d 6ƒ } t i d d d d d g d 6d d 6ƒ } | j i i d d 6d d 6d 6ƒ } t | | ƒ d  S(   Nt   Qt   Tt   Typei   t   tmpi    i   (   RW   R   R   R   (   R   RX   R"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt%   test_regex_replace_dict_nested_gh4115Ü  s    ,)$c         C  s=  i t  d ƒ d 6t d ƒ d 6d d t j d g d 6} t | ƒ } t i | d d 6t j t j g d ƒ d 6t j t j t j d g d 6ƒ } | j d d g t j d	 t ƒ} | j ƒ  } | j ƒ  } | j d d g t j d	 t d
 t ƒ| j d	 d d g d t j d
 t ƒ t	 | | ƒ t	 | | ƒ t	 | | ƒ d  S(   Ni   R$   s   ab..R&   RM   R7   s   \s*\.\s*s   a|bR'   R   R   (
   R   R)   R   R   R   t   arrayR   R   R   R   (   R   R.   RX   R2   R0   RN   RQ   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt!   test_regex_replace_list_to_scalarâ  s    6+"!%%c         C  s
  i t  d ƒ d 6t d ƒ d 6d d t j d g d 6} t | ƒ } | j d d d	 t ƒ} | j ƒ  } | j d d d
 t d	 t ƒ| j ƒ  } | j d	 d d d d
 t ƒ t i | d d 6d d d d g d 6| d d 6ƒ } t | | ƒ t | | ƒ t | | ƒ d  S(   Ni   R$   s   ab..R&   RM   R7   s   \s*\.\s*i    R'   R   R   (	   R   R)   R   R   R   R   R   R   R   (   R   R.   RX   R0   RN   RQ   R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt!   test_regex_replace_str_to_numericñ  s    6$c         C  s'  i t  d ƒ d 6t d ƒ d 6d d t j d g d 6} t | ƒ } | j d d g d d	 t ƒ} | j ƒ  } | j d d g d d	 t d
 t ƒ| j ƒ  } | j d	 d d g d d d
 t ƒ t i | d d 6d d d d g d 6d d t j d g d 6ƒ } t | | ƒ t | | ƒ t | | ƒ d  S(   Ni   R$   s   ab..R&   RM   R7   s   \s*\.\s*i    R'   R   R   (	   R   R)   R   R   R   R   R   R   R   (   R   R.   RX   R0   RN   RQ   R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt(   test_regex_replace_regex_list_to_numeric   s    6""*c   	      C  s9  i t  d ƒ d 6t d ƒ d 6d d t j d g d 6} t | ƒ } t i d d 6ƒ } t i t j d 6ƒ } | j | | d t ƒ} | j ƒ  } | j | | d	 t d t ƒ| j ƒ  } | j d | d
 | d	 t ƒ t i | d d 6d d t j t j g d 6| d d 6ƒ } t	 | | ƒ t	 | | ƒ t	 | | ƒ d  S(   Ni   R$   s   ab..R&   RM   R7   s   \s*\.\s*R'   R   R   (
   R   R)   R   R   R   R   R   R   R   R   (	   R   R.   RX   t   s1t   s2R0   RN   RQ   R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt$   test_regex_replace_series_of_regexes  s    6*c         C  sµ   i t  d ƒ d 6t d ƒ d 6d d t j d g d 6} t | ƒ } t i d d d d	 g d 6| d d 6| d d 6ƒ } | j d
 d ƒ } t | | ƒ | j j t j	 k s± t
 ‚ d  S(   Ni   R$   s   ab..R&   RM   R7   i   i   i   i    (   R   R)   R   R   R   R   R   R$   t   dtypet   object_t   AssertionError(   R   R.   RX   R2   R0   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt/   test_regex_replace_numeric_to_object_conversion  s    65t   metachars   []s   ()s   \ds   \ws   \sc         C  s`   t  i | d g d 6ƒ } | j i i d | 6d 6ƒ } t  i d d g d 6ƒ } t | | ƒ d  S(   Nt   elseR$   t   paren(   R   R   R   (   R   Rj   RX   R!   R"   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_regex_metachar'  s    c         C  sn  t  j |  j d d *t  j |  j d d )|  j j t  j d ƒ } t | |  j j d ƒ ƒ t | j d t  j ƒ |  j ƒ t  j |  j d d *t  j |  j d d )d |  j d d *t d d d g ƒ } t | | j d d	 ƒ ƒ t j d
 t j d ƒ f d t j d ƒ f g ƒ } | j d
 t  j ƒ } t j t  j t j d ƒ f d t j d ƒ f g ƒ } t | | ƒ d  S(   NR   i   iûÿÿÿg    „×—Át   Bt   indexR$   R&   i   t   -t   20150101t   20150102(	   R   R   R   R   R   R   R   RW   t   to_datetime(   R   t   zero_filledRX   t   df1t   expected_df(    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace.  s     c         C  s>  i t  d ƒ d 6t  d ƒ d 6t  d ƒ d 6} t | ƒ } d d g } t j d	 g } | j | | ƒ } t i d d t j t j g d 6d	 d
 d d g d 6d d	 d d g d 6ƒ } t | | ƒ d d
 g } d d	 g } | j | | ƒ } t i d d d d g d 6d d	 d d g d 6d d d d g d 6ƒ } t | | ƒ d  S(   Ns   ab..R$   R%   R&   R6   R7   R(   R?   R8   R@   RA   R9   R:   R;   s   ..(   R)   R   R   R   R   R   (   R   R,   R-   RB   RC   R0   R2   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_listG  s     -"
c      	   C  sÕ   t  j d d g g  t j d g g ƒ } t  j i | d 6ƒ } | } | j g  t j ƒ } t | | ƒ t j t	 d d ƒ | j i g  t j 6ƒ Wd  QXt j t	 d d ƒ" | j i d d g t j 6ƒ Wd  QXd  S(	   NR$   R&   i   t   colt   matchs   cannot assign mismatcht   dummyt   alt(
   RW   R   R   R   R   R   R   t   pytestt   raisest
   ValueError(   R   t   sRX   R"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_with_empty_list_  s    'c         C  sš  t  i i d d 6d d 6d 6i d d 6d d 6d 6ƒ } | j d i d	 d 6d
 d 6ƒ } t  i i d	 d 6d d 6d 6i d d 6d
 d 6d 6ƒ } t | | ƒ | j d | j ƒ  ƒ } t | | ƒ t  i i d d 6d d 6d 6i d d 6d d 6d 6ƒ } t i d d 6d d 6ƒ } | j | i d	 d 6d
 d 6ƒ } t  i i d	 d 6d d 6d 6i d
 d 6d d 6d 6ƒ } t | | ƒ | j | | j ƒ  ƒ } t | | ƒ d  S(   Ng        R$   i   R&   t   zerog       @i    t   oneg      à?g      ð?(   R   R   R   t   meanR   (   R   RX   R!   R"   R€   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_series_dictm  s    6 36 3c         C  s~   t  d d d g d d d g g ƒ } i d d 6d d 6d d 6} | j | ƒ } t t j g d ƒ } | j } t | | ƒ d  S(   NR   t   bart   bahi   i   i   (   R   R   R   R   t   int64t   dtypesR   (   R   RX   t   mt   repR2   R0   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_convertƒ  s    $	c         C  sJ  |  j  } t j | j d d … | j j d ƒ f <t j | j d d  … | j j d ƒ f <|  j  j t j d ƒ } |  j  j d d ƒ } t | | ƒ t | j d t j ƒ |  j  ƒ |  j  j t j d ƒ } |  j  j d d ƒ } t | | ƒ t | j d t j ƒ |  j  ƒ t	 i t
 d	 d
 g d d ƒd 6t
 d d g d d ƒd 6ƒ } t	 i t
 d	 d
 g d d ƒd 6t
 d d g d d ƒd 6ƒ } | j d d ƒ } t | | ƒ | j d d d t ƒt | | ƒ t	 i t
 d	 d
 g d d ƒd 6t
 d d g d d ƒd 6t
 d d g d d ƒd 6ƒ } t	 i t
 d	 d
 g d d ƒd 6t
 d d g d d ƒd 6t
 d d g d d ƒd 6ƒ } | j d d ƒ } t | | ƒ t	 i t
 d	 d
 g d d ƒd 6t
 d d g d d ƒd 6ƒ } t	 i t
 d d g d d ƒd 6t
 d d g d d ƒd 6ƒ } | j d d ƒ } t | | ƒ t	 i t
 d d g d d ƒd 6t
 d d g d d ƒd 6ƒ } | j d d g d d g ƒ } t | | ƒ t	 i t
 d d g d d ƒd 6t
 d d g d d ƒd 6ƒ } | j d | j ƒ  j ƒ  ƒ } | j ƒ  j d ƒ } | j ƒ  } | d | j d <| d | j d <t | | ƒ d  S(   Ni   i   R   iöÿÿÿR   iîÿÿÿR   g    „×—Ág      ð?g       @Rf   t   float64i    i   Rˆ   Rn   g      à?R   i   t   Ct   objectR†   i   (   i    i    (   i   i   (   R   R   R   R   R   R   R   R   R   R   R   R   R„   t   to_dictR   t   astype(   R   R    R!   R"   RX   RŠ   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_mixedŒ  sZ    	((c         C  sš   t  i t d d ƒ d 6ƒ } t  i d d d d g d 6ƒ } | j i i d d 6d d 6d 6ƒ } t | | ƒ | j i d d 6d d 6ƒ } t | | ƒ d  S(	   Ni   i   Ry   R$   i   i   R&   i   (   R   R   R   R   (   R   RX   R"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_simple_nested_dictÇ  s    $c         C  s¨   t  i t d d ƒ d 6ƒ } t  i d d d d g d 6ƒ } | j i d d	 6d d 6d d
 6ƒ } t | | ƒ | j i i d d	 6d d 6d d
 6d 6ƒ } t | | ƒ d  S(   Ni   i   Ry   R$   i   i   R&   Rp   iÿÿÿÿi   (   R   R   R   R   (   R   RX   R"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt6   test_replace_simple_nested_dict_with_nonexistent_valueÒ  s    $+c         C  s  |  j  j d } |  j  j d } t j |  j  j d <d |  j  j d <|  j  j d i d t j 6ƒ } |  j  j j d i d t j 6ƒ j } t | | ƒ |  j  j d i d t j 6d d 6ƒ } |  j  j ƒ  } d | j d	 <d | j d
 <| } t | | ƒ | |  j  j d <| |  j  j d <d  S(   Ni    i   t
   to_replaceg    „×—Á(   i    i    (   i   i    (   i    i    (   i   i    (   i    i    (   i   i    (   i    i    (   i   i    (   R   R   R   R   R   R[   R   R   (   R   t
   orig_valuet   orig2R!   R"   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_value_is_noneÜ  s    %&c         C  s
  |  j  j ƒ  j t j ƒ } t j | d d *t j | d d )| j t j d ƒ } t | | j d ƒ ƒ t | j d t j ƒ | ƒ t j | d d *t j | d d )d | d d *| d } t j | | d k <| | d <| j d d ƒ } t | | j d d ƒ ƒ d  S(   NR   i   iûÿÿÿg    „×—ÁRn   t   methodt   bfill(	   R   R   R‘   R   t   float32R   R   R   R   (   R   R   Rt   R&   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_for_new_dtypesð  s    

s"   frame, to_replace, value, expectedi   i   i   t   intsi    Rf   t   boolsy              ð?y               @y              @t   complexy                iâ  i   i   i   t
   datetime64iÉ  i   i   t   dtR   t   strR†   t   20130101t   periodst   tzs
   US/EasternR   Rn   t   20130102t   20130104t   20130103c         C  s)   t  | d ƒ | | ƒ } t | | ƒ d  S(   NR   (   t   getattrR   (   R   t   frameR•   R   R"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_dtypes  s    c           s  i t  j d 6d d 6d d 6‰  i d d 6d d 6d d 6‰ t i t  j d t  j g d 6d d d	 g d 6d d
 d g d 6ƒ } | j ˆ  ˆ ƒ } ‡  ‡ f d †  t j | ƒ Dƒ } t | t | ƒ ƒ | j d d d	 g d	 d d g ƒ } t i t  j d	 t  j g d 6d	 d d g d 6d d
 d g d 6ƒ } t | | ƒ i d d 6d d 6d d 6‰ t i t  j d t  j g d 6d d d	 g d 6d d
 d g d 6ƒ } | j t  j ˆ ƒ } ‡ f d †  t j | ƒ Dƒ } t | t | ƒ ƒ t  j d d g ‰  d d d g ‰ | j ˆ  ˆ ƒ } | j ƒ  } x8 t	 t
 ˆ  ƒ ƒ D]$ } | j ˆ  | ˆ | d t ƒq+Wt | | ƒ t j t | j ˆ  ˆ d ƒ d  S(   NR   i    Rn   t    RŽ   iÿÿÿÿt   missingi   i   t   asdft   fdc           s3   i  |  ]) \ } } | j  ˆ  | ˆ | ƒ | “ q S(    (   R   (   t   .0t   kt   v(   t   to_repRC   (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pys
   <dictcomp>-  s   	c           s2   i  |  ]( \ } } | j  t j ˆ  | ƒ | “ q S(    (   R   R   R   (   R°   R±   R²   (   RC   (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pys
   <dictcomp>;  s   	iþÿÿÿR   i   (   R   R   R   t   infR   R
   t	   iteritemsR   R   R   t   lenR   R}   R~   R   (   R   RX   t   filledR"   R!   t   i(    (   R³   RC   s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt#   test_replace_input_formats_listlike&  s6    ,$,,"c           sA  t  i t j d t j g d 6d d d g d 6d d d g d	 6ƒ } i t j d 6d d 6d d	 6‰  | j ˆ  d ƒ } ‡  f d
 †  t j | ƒ Dƒ } t | t  | ƒ ƒ t j	 t
 | j ˆ  t j d d g ƒ t j d d g ‰  | j ˆ  d ƒ } | j ƒ  } x4 t t ˆ  ƒ ƒ D]  } | j ˆ  | d d t ƒqWt | | ƒ d  S(   Ni    R   i   i   Rn   R¬   R®   R¯   RŽ   c           s/   i  |  ]% \ } } | j  ˆ  | d  ƒ | “ q S(   i    (   R   (   R°   R±   R²   (   R³   (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pys
   <dictcomp>Q  s   	iÿÿÿÿR   (   R   R   R   R´   R   R
   Rµ   R   R}   R~   t	   TypeErrorR   R   R¶   R   (   R   RX   R·   R"   R!   R¸   (    (   R³   s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt!   test_replace_input_formats_scalarJ  s    ,%c         C  s   d  S(   N(    (   R   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_limit_  s    c         C  s§   t  i d d 6d d 6d d 6d d 6d	 d
 6ƒ } i d
 d 6d d 6d d 6d d 6d d	 6} t  i d d 6d
 d 6d d 6d d 6d d
 6ƒ } | j | ƒ } t | | ƒ d  S(   Ns   Strongly Agreei    t   Agreei   t   Neutrali   t   Disagreei   s   Strongly Disagreei   i   (   R   R   R   (   R   t   answert   weightsR"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_dict_no_regexb  s    /c         C  s­   t  i d d 6d d 6d d 6d d 6d	 d
 6ƒ } t  i d
 d 6d d 6d d 6d d 6d d	 6ƒ } t  i d d 6d
 d 6d d 6d d 6d d
 6ƒ } | j | ƒ } t | | ƒ d  S(   Ns   Strongly Agreei    R½   i   R¾   i   R¿   i   s   Strongly Disagreei   i   (   R   R   R   (   R   RÀ   RÁ   R"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_series_no_regexk  s    /c         C  sÓ   t  t d t j d g ƒ ƒ } | j d i d t j 6d d 6ƒ } | j d d t j f d d d g ƒ } | j d d t j g d d d g ƒ } t  i d d g d 6ƒ } t | | ƒ t | | ƒ t | | ƒ d  S(   NR   i   R•   i    g    „×—ÁR   (   R   t   dictR   R   R   R   (   R   RX   t   res1RN   RQ   R"   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt6   test_replace_dict_tuple_list_ordering_remains_the_samet  s    #''c         C  sH   d } t  j t | ƒ d d ƒ} | j i d d 6ƒ } t | | ƒ d  S(   Ns™   fol T_opp T_Dir T_Enh
        0    1     0     0    vo
        1    2    vr     0     0
        2    2     0     0     0
        3    3     0    bt     0t   seps   \s+i   s   \D(   RW   t   read_csvR   R   R   (   R   t   rawRX   R0   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt)   test_replace_doesnt_replace_without_regex  s    c         C  sl   t  i t t g d 6t d ƒ d 6ƒ } | j t d ƒ } t  i d t g d 6| j d 6ƒ } t | | ƒ d  S(   NR$   t   abR&   (   R   R   t   FalseR)   R   R&   R   (   R   RX   R!   R"   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_bool_with_string‰  s    &#c         C  sD   t  t j j d d ƒ d k ƒ } | j d d ƒ } t | | ƒ d  S(   Ni   g      à?R®   t   fdsa(   R   R   t   randomt   randR   R   (   R   RX   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt(   test_replace_pure_bool_with_string_no_op  s    !c         C  s_   t  t j j d d ƒ d k ƒ } | j t t ƒ } t  t j d d t ƒƒ } t	 | | ƒ d  S(   Ni   g      à?Rf   (   i   i   (
   R   R   RÏ   RÐ   R   RÌ   R   t   onest   boolR   (   R   RX   R!   R"   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_bool_with_bool”  s    !c         C  sa   t  i t t g d 6t t g d 6ƒ } t j t d d ƒ  | j i d d 6d t 6ƒ Wd  QXd  S(   Ni    i   Rz   s   Cannot compare types .+t   asdbR®   t   yes(   R   R   RÌ   R}   R~   Rº   R   (   R   RX   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt%   test_replace_with_dict_with_bool_keysš  s    &c         C  sR   t  i t t g d 6ƒ } | j t j t j g t j ƒ } | } t | | ƒ d  S(   NR$   (   R   R   R   R   R´   R   R   (   R   RX   t   rR?   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_truthyŸ  s    "c         C  sq   t  i t d d ƒ d 6ƒ } t j t d d ƒ: | j i t t t d d ƒ t d d ƒ ƒ ƒ d 6ƒ Wd  QXd  S(   Ni   i   R$   Rz   s   Replacement not allowed .+i   i   (	   R   R   R}   R~   R   R   RÄ   R   R   (   R   RX   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_int_to_int_chain¥  s    c      
   C  s’   t  j d d ƒ } | j t ƒ } t  j d d ƒ j t ƒ } t i | d 6ƒ } t j t d d ƒ( | j i t	 t
 | | ƒ ƒ d 6ƒ Wd  QXd  S(   Ni   i   i   i   R$   Rz   s   Replacement not allowed .+(   R   t   arangeR‘   R¢   R   R}   R~   R   R   RÄ   R   (   R   R$   t   astrt   bstrRX   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_str_to_str_chainª  s    c         C  sâ   t  j i t t t g d 6ƒ } | j i i d t 6d t 6d 6ƒ } t  j i d d d g d 6ƒ } t | | ƒ t  j i d d d g d 6ƒ } | j i i d d 6d d 6d 6ƒ } t  j i d d d g d 6ƒ } t | | ƒ d  S(   NR$   t   Yt   Ni    i   (   RW   R   R   RÌ   R   R   (   R   RX   R0   t   expect(    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_swapping_bug²  s    $$c      	   C  s›  i i t  j d d d d d d ƒ d 6t  j d d d d d d ƒ d	 6t  j d d
 d d d d ƒ d 6t  j d d d d d d ƒ d 6t  j d d
 d d d d ƒ d 6t  j d d d d d d ƒ d 6t  j d d d d d d ƒ d 6d 6} t  j d d d d d d d	 g d d g ƒ} t | j j ƒ t | d j ƒ  ƒ k sAt ‚ t i g  | j j D] } | d | ^ qTd 6d t ƒ} | j	 | ƒ } t
 | | ƒ d  S(   Nt   yeariÛ  t   monthi   t   freqt   Ms   out_augmented_AUG_2011.jsoni   s   out_augmented_JAN_2011.jsoniÜ  i   s   out_augmented_MAY_2012.jsoni   s   out_augmented_SUBSIDY_WEEK.jsons   out_augmented_AUG_2012.jsons   out_augmented_MAY_2011.jsoniÝ  i	   s   out_augmented_SEP_2013.jsont   fnameR   Rf   (   RW   t   PeriodR   t   setRç   RC   t   keysRh   R   R   R   (   R   RM   RX   R±   R"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_period½  s,    &	.	(	c         C  s,  i i t  j d ƒ d 6t  j d ƒ d 6t  j d ƒ d 6t  j d ƒ d 6t  j d	 ƒ d
 6t  j d ƒ d 6t  j d ƒ d 6d 6} t  j d
 d d d d d d g d d g ƒ} t | j j ƒ t | d j ƒ  ƒ k sØ t ‚ t i g  | j j D] } | d | ^ që d 6ƒ } | j | ƒ } t	 | | ƒ d  S(   Ns   2011-08s   out_augmented_AUG_2011.jsons   2011-01s   out_augmented_JAN_2011.jsons   2012-05s   out_augmented_MAY_2012.jsons   2011-04s   out_augmented_SUBSIDY_WEEK.jsons   2012-08s   out_augmented_AUG_2012.jsons   2011-05s   out_augmented_MAY_2011.jsons   2013-09s   out_augmented_SEP_2013.jsonRç   R   (
   RW   R	   R   Ré   Rç   RC   Rê   Rh   R   R   (   R   RM   RX   R±   R"   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_datetimeß  s(    	.	+c         C  s/  t  i t d d d d d ƒd 6d t j d g d	 6ƒ } | j t j d
 ƒ } t  i t d d d d d ƒd 6t d d
 d g d d ƒd	 6ƒ } t | | ƒ | j d
 ƒ } t | | ƒ | j d t j ƒ } t  i t d d d d d ƒd 6t j t j d g d	 6ƒ } t | | ƒ | j t d d d ƒt d d d ƒƒ } t  i t d d d ƒt d d d ƒt d d d ƒg d 6d t j d g d	 6ƒ } t | | ƒ | j	 ƒ  } t j | j
 d <| j i t j d 6t d d d ƒƒ } t | | ƒ | j	 ƒ  } t j | j
 d <| j i t j d 6t d d d ƒƒ } t  i t d d d ƒt d d d ƒt d d d ƒg d 6d t j d g d	 6ƒ } t | | ƒ | j	 ƒ  } t j | j
 d <| j i t j d 6t d ƒ ƒ } t  i t d d d ƒt d ƒ t d d d ƒg d 6d t j d g d	 6ƒ } t | | ƒ d  S(   NR£   R¤   i   R¥   s
   US/EasternR   i    i   Rn   i   Rf   R   R¦   R§   R¨   s
   US/Pacific(   i   i    (   i   i    (   i   i    (   R   R   R   R   R   R   R   R   R	   R   R   RW   t   NaT(   R   RX   R!   R"   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_datetimetzö  sX    

"
"""	c         C  s¸   i t  d ƒ d 6t d ƒ d 6d d t j d g d 6} t | ƒ } t | | j i  ƒ ƒ t | | j t g  ƒ ƒ ƒ t | | j i i  d 6ƒ ƒ t | | j t i i  d 6ƒ ƒ ƒ d  S(   Ni   R$   s   ab..R&   RM   R7   (   R   R)   R   R   R   R   R   R   (   R   R.   RX   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt    test_replace_with_empty_dictlike.  s    6s   to_replace, method, expectedRš   R$   R&   R7   RŽ   g      @g      @RM   t   ffillt   padc         C  sz   t  i d d d g d 6d t j d g d 6d d	 d
 g d 6ƒ } | j d | d d  d | ƒ } t  | ƒ } t | | ƒ d  S(   Ni    i   i   R   i   i   Rn   R$   R&   R7   RŽ   R•   R   R™   (   R   R   R   R   t   NoneR   (   R   R•   R™   R"   RX   R!   (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   test_replace_method8  s    (   i   i   (@   t   __name__t
   __module__R#   R4   R5   RD   RE   RK   RL   RO   RR   RY   R^   R`   Ra   Rb   Re   Ri   R}   t   markt   parametrizeRm   Rw   Rx   R   R…   RŒ   R’   R“   R”   R˜   Rœ   R   R   t   int32t   int16R   RÌ   R   R   R   R   R	   R«   R¹   R»   R¼   RÂ   RÃ   RÆ   RÊ   RÍ   RÑ   RÔ   R×   RÙ   RÚ   RÞ   Râ   Rë   Rì   Rî   Rï   Ró   (    (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyR      s¾   		B	w	*	0	'	'	9								-							;		
		(%(%,),+	$								
									"		8	
(   t
   __future__R    R   R*   t   numpyR   R}   t   pandas.compatR   R   R   R   t   pandasRW   R   R   R   R	   R
   R   t   pandas.tests.frame.commonR   t   pandas.util.testingR   R   R   (    (    (    s>   lib/python2.7/site-packages/pandas/tests/frame/test_replace.pyt   <module>   s   ".