1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
U
­ý°dßlã@szddlmZmZddlZddlZddlmZddlZddlm    Z    m
Z
m Z m Z m Z ddlmZddlmZGdd„dƒZdS)é©ÚdatetimeÚ    timedeltaN)ÚUnsortedIndexError)Ú    DataFrameÚIndexÚ
MultiIndexÚSeriesÚ    Timestamp)Ú_mklblc@s
eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zej ddedddƒedddƒfdedddƒedddƒfdedd dƒedd!dƒfdedd dƒedd!dƒfdeddd"ƒeddd"ƒfdeddd"ƒeddd"ƒfdedd d"ƒedd!d"ƒfdedd d"ƒedd!d"ƒfd#edddƒedddƒfd#ed$ddƒedddƒfd#edd%dƒedd!dƒfd#ed$d%dƒedd!dƒfd#eddd"ƒeddd"ƒfd#ed$dd"ƒeddd"ƒfd#edd%d"ƒedd!d"ƒfd#ed$d%d"ƒedd!d"ƒfg¡d&d'„ƒZdS)(ÚTestMultiIndexSlicersc        Cst tddƒtddƒtddƒtddƒg¡}tt t| ¡ƒ¡|d    }|jt    d
d ƒt    dƒd d gfdd…f}|jdd„|j
j Dƒ}t   ||¡|jdd„|j
j Dƒ}|jt    d
d ƒt    dƒt    d d ƒfdd…f}t   ||¡tjddddgddgd}tjddddgddgd}ttjddd  dd¡||d!}|jd"d#jd$d#}|jt    dƒt    dƒfdd…f}t   ||¡|jt    dƒt    dƒft    dƒt    dƒff}t   ||¡|jdd…t    dƒt    dƒff}t   ||¡|jt    dƒd$gfdd…f}|jd"d%g}t   ||¡|jt    dƒd$fdd…f}|jd"d%g}t   ||¡|jdd…t    dƒd&gff}|jdd…d$d%gf}t   ||¡|jt    dƒd$ft    dƒd&gff}|jd"d%gd$d%gf}t   ||¡|jd'}td$dd(gd"dd)gd*œtd$dd%gdd+td,d&gdd+d!}t   ||¡|jt    dƒd$dgfdd…f}|jd"d$d%g}t   ||¡tt t| ¡ƒ¡|d    }|jd
d …dd…d d gf}|jd-d„|j
j Dƒ}t  ||¡|jt    dƒ|jdd…dfdkfdd…f}|jdd%g}t   ||¡d.}tjt|d/*|jt    dƒt d0d1g¡fdd…fW5QRXtjtd2d/|jt    dƒd$gfW5QRX|j
jdks^t‚|jd$d"d3}|j
jd"ks~t‚d4}tjt|d/$|jt    dƒt    d,ƒfdd…fW5QRX|jt    dƒ|jdd…dfdkfdd…f}t   ||jd$d%gdd…f¡dS)5NÚAéÚBéÚCéÚDé©ÚindexÚA1ÚA3ÚC1ÚC3cSs0g|](\}}}}|dkr|dkr||||f‘qS©©rÚA2r©rr©©Ú.0ÚaÚbÚcÚdrrúbd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexing/multiindex/test_slice.pyÚ
<listcomp>"s
úüzITestMultiIndexSlicers.test_per_axis_per_level_getitem.<locals>.<listcomp>cSs0g|](\}}}}|dkr|dkr||||f‘qS)r)rZC2rrr rrr&r'0s
úü©r é©r r©r é©rr)ÚoneÚtwo©Únames©r"Úfoo©r"Úbar©r#r3©r#ÚbahÚlvl0Úlvl1éÚint64©Údtype©rÚcolumnsr©Úaxisr)r,r3©r r"é    é)r5r3©Únamer5cSs0g|](\}}}}|dkr|dkr||||f‘qSrrr rrr&r'ws
úüzLcannot index with a boolean indexer that is not the same length as the index©ÚmatchTFz\[1\] not in index)ÚlevelrBz_MultiIndex slicing requires the index to be lexsorted: slicing on levels \[1\], lexsort depth 0)rÚ from_productr rÚnpÚarangeÚlenZto_numpyÚlocÚslicerÚvaluesÚtmÚassert_frame_equalÚ from_tuplesÚreshapeÚ
sort_indexÚilocrr    Úassert_series_equalÚpytestÚraisesÚ
ValueErrorÚarrayÚKeyErrorZ_lexsort_depthÚAssertionErrorr)    ÚselfÚixÚdfÚresultÚexpectedrr@ÚsÚmsgrrr&Útest_per_axis_per_level_getitems¬"ÿ&ùÿ ùÿ ( 
ÿ
þÿ &       
ý  ùÿ , ÿ.ÿ(,z5TestMultiIndexSlicers.test_per_axis_per_level_getitemcCs2tddddgddddgddddgddddgdœƒ dd    d
g¡ ¡}|jjrNt‚tddgddgddgddgdœƒ dd    d
g¡ ¡}|jtdƒtdƒdfdd…f}t     ||¡|j
ddd d }t     ||¡tddddgddddgddddgddddgdœƒ dd    d
g¡ ¡}|jjrt‚tddgddgddgddgdœƒ dd    d
g¡ ¡}|jtdƒtdƒdfdd…f}|jjrxt‚t     ||¡ddddd dddddddddddddddddg}t |ƒ}t   dg||g¡}tdg||d}| ¡}|jtdƒtdƒf}tdg|d|dd…d ¡}t ||¡dS)Nr3r"r)rr,r)r rrrr rrF)rJZ
drop_levelrérrErDé
é é é ér;éééi@ ri †éþÿÿÿ)rÚ    set_indexrVrZ    is_uniquer^rOrPrRrSÚxsrNrÚ from_arraysr    rX)r_rarcrbÚintsÚnÚidxrrr&Ú"test_multiindex_slicers_non_unique¦s†
 
 
 
üÿøÿ "ÿÿ   
 
 
 
üÿøÿ "ÿÿ  ê"z8TestMultiIndexSlicers.test_multiindex_slicers_non_uniquecCsvdd„tdƒDƒ}ddg}tj||gddgd}ttjd    d
d  d d ¡|tdƒd}tj    }|j
ddd gddgf}|j t t dƒt dƒƒt ddƒft ddƒf}t ||¡|j |t dƒt dƒ…|dd…ft ddƒf}t ||¡|j t t dƒt dƒƒdft ddƒf}t ||¡|j t ddƒt ddƒft ddƒf}t ||¡|j |dd…df|df}t ||¡dS)Nc    Ss(g|] }tddddddƒt|d‘qS)iÜr)rj)Údaysr)r!Úirrr&r'ýszNTestMultiIndexSlicers.test_multiindex_slicers_datetimelike.<locals>.<listcomp>rgr)rÚdateZ    frequencyr0é0r<r=éÿÿÿÿrÚABCDr?rz2012-01-01 12:12:12z2012-01-03 12:12:12r r)r r)ÚrangerrKrrLrMrUÚlistÚpdÚ
IndexSlicerWrOrPr
rRrS)r_ÚdatesÚfreqrrarvrcrbrrr&Ú$test_multiindex_slicers_datetimelikeúsjýÿüúÿ     ÿ
üúÿ     ÿüúÿ     ÿÿ ÿz:TestMultiIndexSlicers.test_multiindex_slicers_datetimelikecCsˆtdgddgddgddddddgdd    d
d d d d    d
d d d ddd d dgdddddddddddddddgdœƒ}t |d¡|d<| dddg¡}| ¡}|jtdƒdd…f}|jdd…}t     ||¡|jtdƒdd…f}|}t     ||¡|jtdƒtddƒfdd…f}|jddddd dd!d"dg    }t     ||¡|jtdƒtdƒtd#d$ƒfdd…f}|jddd%dd!g}t     ||¡|jtdƒtdƒfdd…f}|jdddd%dd&g}t     ||¡|jtdƒtdƒfdd…f}|}t     ||¡|jtdƒtddƒtd ƒfdd…f}|jddddd dd!d"g}t     ||¡|jtdƒtdƒtd'd$ƒfdd…f}|jddd%dd!g}t     ||¡dS)(NZA0rrrZB0ZB1ZB2r,z
2013-06-11z
2013-07-02z
2013-07-09z
2013-07-30z
2013-08-06z
2013-09-03z
2013-10-01éé#rlrDré(rnrr))r rÚDATEZVALUESrˆr rrrhrrErjrkZ20130702Z20130709rgriZ20130701)
rr€Ú to_datetimerqrVrOrPrWrRrS)r_raZdf1rbrcrrr&Útest_multiindex_slicers_edges7sbñ ìÿ    &   & &z3TestMultiIndexSlicers.test_multiindex_slicers_edgesc    CsTtj}t tddƒtddƒtddƒtddƒg¡}tjddd    d
gd d gd }ttjt    |ƒt    |ƒdd 
t    |ƒt    |ƒf¡||d}|j t ddƒt dƒddgfdd…f}|j dd„|j jDƒ}t ||¡|j |dd…dd…ddgfdd…f}t ||¡|j t dƒt dƒddgfdd…f}|j dd„|j jDƒ}t ||¡|j |dd…dd…ddgfdd…f}t ||¡d}tjt|d|j ddt dƒffW5QRXt |j dt dƒdff|j djdd…ddgf¡|jdd}|j dt dƒdff|j t dƒt dƒddgft dƒdffd|j dddd…dd…ddgf<dS) Nr rrrrrr2r4r6r7r9r:r0r<r=r?rrrrcSs0g|](\}}}}|dkr|dkr||||f‘qSrrr rrr&r'–s
úüzNTestMultiIndexSlicers.test_per_axis_per_level_doc_examples.<locals>.<listcomp>cSs(g|] \}}}}|dkr||||f‘qS©rrr rrr&r'§s
úüz_MultiIndex slicing requires the index to be lexsorted: slicing on levels \[1\], lexsort depth 1rHr"r3rr)rAiöÿÿÿ)r€rrrKr rTrrLrMrNrUrOrPrrQrRrSrYrZrrWrV)r_rvrr@rarbrcrerrr&Ú$test_per_axis_per_level_doc_examplessZ"ÿ
þÿû&ùÿ ( $ùÿ ( ÿ ÿ (z:TestMultiIndexSlicers.test_per_axis_per_level_doc_examplesc
Csæt tddƒtddƒtddƒtddƒg¡}tjddd    d
gd d gd }ttjt|ƒt|ƒdd t|ƒt|ƒf¡||d     ¡j    dd}|j
dddd…dd…ddgf}|j
dd„|j j Dƒ}t  ||¡|j
dddd…dd…ddgf}|j
dd„|j j Dƒ}t  ||¡|j
dddd…df}|j
dd…tdƒdff}t  ||¡|j
dddd…df}|j
dd…tdƒdff}t  ||¡dD]N}d|›d }tjt|d!(|j
|ddd…dd…ddgfW5QRXq’dS)"Nr rrrrrr2r4r6r7r9r:r0r<r=r?r)rArrrrrcSs0g|](\}}}}|dkr|dkr||||f‘qSrrr rrr&r'ãs
úüzATestMultiIndexSlicers.test_loc_axis_arguments.<locals>.<listcomp>rcSs(g|] \}}}}|dkr||||f‘qSr‹rr rrr&r'òs
úür3r@)r|rr3zNo axis named z for object type DataFramerH)rrKr rTrrLrMrNrUrVrOrrQrRrSrPrYrZr[)r_rr@rarbrcryrerrr&Útest_loc_axis_argumentsÌsR"ÿ
þÿû
øÿ "ùÿ "ùÿ    z-TestMultiIndexSlicers.test_loc_axis_argumentscCsjtt d¡ dd¡t dddgddd    gg¡d
}|jd d dd…}|jdd…dd …f}t     ||¡dS)Nér,rDÚa1Úa2Úa3Úb1Úb2Úb3©r@r)rAéýÿÿÿ)
rrLrMrUrrKrOrWrRrS©r_rarbrcrrr&Ú?test_loc_axis_single_level_multi_col_indexing_multiindex_col_dfsþzUTestMultiIndexSlicers.test_loc_axis_single_level_multi_col_indexing_multiindex_col_dfcCsrtt d¡ dd¡t dddgddd    gg¡d
}|jd d d}|jdd…dd…f}ddd    g|_t     
||¡dS) NrŽr,rDrrr‘r’r“r”r•r)rA) rrLrMrUrrKrOrWr@rRrSr—rrr&Ú@test_loc_axis_single_level_single_col_indexing_multiindex_col_dfsþ zVTestMultiIndexSlicers.test_loc_axis_single_level_single_col_indexing_multiindex_col_dfcCsXtt d¡ dd¡dddgd}|jddd}tt d    dd
g¡dd }t ||¡dS) NrDr,r"r#r$r•r)rArrgrF)    rrLrMrUrOr    r\rRrXr—rrr&Ú*test_loc_ax_single_level_indexer_simple_df%s z@TestMultiIndexSlicers.test_loc_ax_single_level_indexer_simple_dfc        CsŽtj}tjddddgddgd}tjdd    d
d gd d gd}ttjddd dd¡||d}|jddjdd}|     ¡}d|j
t dƒt dƒfdd…f<|     ¡}d|j dd…dd…f<t  ||¡|     ¡}d|j
dddd…dd…f<|     ¡}d|j dd…dd…f<t  ||¡|     ¡}d|j
t dƒt dƒft dƒt dƒff<|     ¡}d|j dd…dd…f<t  ||¡|     ¡}d|j
dd…t dƒt dƒff<|     ¡}d|j dd…dd…f<t  ||¡|     ¡}d|j
t dƒdgfdd…f<|     ¡}d|j ddg<t  ||¡|     ¡}d|j
t dƒdfdd…f<|     ¡}d|j ddg<t  ||¡|     ¡}d|j
dddd…df<|     ¡}d|j ddg<t  ||¡|     ¡}d|j
dd…t dƒdgff<|     ¡}d|j dd…ddgf<t  ||¡|     ¡}d|j
t dƒdft dƒdgff<|     ¡}d|j ddgddgf<t  ||¡|     ¡}d|j
|dd…df|dd…dgff<|     ¡}d|j ddgddgf<t  ||¡|     ¡}d|j
d<|     ¡}d|j dd…dd…f<t  ||¡|     ¡}tjddgddggdd|j
t dƒdft dƒdgff<|     ¡}d|j ddgddgf<t  ||¡|     ¡}d}tjt|d:tjdgddggdd|j
t dƒdft dƒdgff<W5QRXd}tjt|d8tjddddgdd|j
t dƒdft dƒdgff<W5QRX|     ¡}|j
t dƒdft dƒdgffd|j
t dƒdft dƒdgff<|     ¡}|j ddgddgfd|j ddgddgf<t  ||¡|     ¡}|j
t dƒdft dƒdgff|j
t dƒdft dƒdgff9<|     ¡}|j ddgddgf|j ddgddgf9<t  ||¡|j
t dƒdft dƒdgff     ¡}d|j
dd…d f<|     ¡}|j
t dƒdft dƒdgff|9<|     ¡}|j ddgddgf|j ddgddgf9<t  ||¡dS)!Nr(r*r+r-r.r/r0r2r4r6r7r9r:r;r<r=rr?rrAr)édr,r3rCrz)setting an array element with a sequence.rHz@Must have equal len keys and value when setting with an iterablerrh)r$r8)r€rrrTrrLrMrUrVÚcopyrOrPrWrRrSr\rYrZr[)    r_rvrr@Zdf_origrarcreÚrhsrrr&Útest_per_axis_per_level_setitem-sÞ
ÿ
þÿ  &        ( 
 ÿ"  ÿ,
ÿ,"ÿ, $ÿ0 $(0z5TestMultiIndexSlicers.test_per_axis_per_level_setitemcCsætt d¡t tdƒt d¡g¡ƒ}tj}t     ||ddd…|ddd…¡t     ||ddd…|ddd…¡t     ||ddd…|ddd…¡t     ||ddd…|ddd…¡t     ||ddd…|ddd…¡t     ||dd    d…|dd
d…¡t     ||dd    d…|dd
d…¡t     ||dd d…|dd
d…¡t     ||dd d…|dd
d…¡t     ||d    dd…|dd …¡t     ||d dd…|ddd…¡t     ||dd d…|ddd…¡t     ||dd d…|ddd…¡dS)NéÚabcderr|r%é)r%rir#r,)r#r)r$rrhrD)Úerr;)
r    rLrMrrKrr€rrRZ!assert_indexing_slices_equivalent)r_ZserÚSLCrrr&Ú0test_multiindex_label_slicing_with_negative_step¶s,ÿ""""""""" "" ÿzFTestMultiIndexSlicers.test_multiindex_label_slicing_with_negative_stepcCsÊddddg}t |tdƒg¡}tttdƒƒ|dgd}|jtjdd…d    d
…fdd…f}|jd}tttd    d ƒƒdgtd    d ƒd }t     ||¡|jd}tttd dƒƒdgtd    d ƒd }t     ||¡dS)Nr"r#r$r%iôiÐZTestr?ééFéG)r@riúi#)
rrKr~rrrOr€rrRrS)r_rƒrvraZdf_slicerbrcrrr&Ú!test_multiindex_slice_first_levelÐs $
  
 ÿz7TestMultiIndexSlicers.test_multiindex_slice_first_levelcCsž|}|d}|dd…}| |jdd…¡}t ||¡|d ¡}d|dd…<d|jdd…<t |j|j¡|dd…}| |jdd…¡}t ||¡dS)Nr rr)    ZreindexrrRrXrœrWZassert_numpy_array_equalrQrS)r_Z/multiindex_year_month_day_dataframe_random_dataZymdrdrbrcÚexprrr&Útest_int_series_slicingßs     z-TestMultiIndexSlicers.test_int_series_slicingzdtype, loc, ilocÚintNr|r,r)rrpÚstrr%r#c CsÈtdƒtdƒdœ|}t |gd¡}td|dgd}tj}|j|dd…f}|j||dd…f}    |j||dd…fdd…f}
|j|dd…|fdd…f} t     
|    |¡t     
|
|¡t     
| |¡dS)Nr r)r¬r«rgð?r r?) rr~rrsrr€rrWrOrRrS) r_r>rOrWÚlabelsÚmirar£rcZresult_get_locZresult_get_locs_level_0Zresult_get_locs_level_1rrr&Ú test_loc_slice_negative_stepsizeïsþý  z6TestMultiIndexSlicers.test_loc_slice_negative_stepsize)Ú__name__Ú
__module__Ú __qualname__rfrwr„rŠrŒrr˜r™ršržr¤r¨rªrYÚmarkZ parametrizerPr¯rrrr&r sHT=JKB  
ìþr )rrÚnumpyrLrYZ pandas.errorsrZpandasr€rrrr    r
Zpandas._testingZ_testingrRZpandas.tests.indexing.commonr r rrrr&Ú<module>s