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
U
­ý°dh=ã@sŠddlZddlZddlZddlmZddlmZmZm    Z    m
Z
m Z m Z ddl mZddlmZejdd„ƒZGdd„dƒZGd    d
„d
ƒZdS) éN)ÚSettingWithCopyError)Ú    DataFrameÚIndexÚ
IndexSliceÚ
MultiIndexÚSeriesÚconcat)ÚBDayc    Cs’t dddddgdddd    d
gd d d ddgg¡}tddgddgdddgdddggdddgdddgdddgdddggdddd gd!}t||td"ƒd#S)$NçEØðôJYà¿çrùé·¯Àçî|?5^ºÝ¿çÌÑã÷6ý©?ç²ï§ÆK×?ç à- Ü?ç†ÉTÁ¨¤ö?çúíëÀ9#Ò?ç—9]ð?ç46<½RÆ?gá “©‚Qå¿gž^)ËÇà¿g¶óýÔxéÖ¿gI€&†ì?g=›UŸ«@ÚaÚxÚbÚqçı.n£$@ç4@g>@ééérééÚoneÚtwoÚthreeÚfour©ÚlevelsÚcodesÚnamesÚABCDE©ÚindexÚcolumns)ÚnpÚarrayrrÚlist)Úarrr)©r/úZd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/frame/indexing/test_xs.pyÚfour_level_index_dataframes   ýÿ"
ýr1c@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) ÚTestXSc     Cst| ¡}|jd}| |¡}| ¡D]>\}}t |¡rNt |||¡sbt‚q$||||ks$t‚q$dddœddddœd    œ}    t|    ƒ}
|
 d¡}|jtj    ksžt‚|d
dks®t‚|d dks¾t‚t
j t t  d ¡d | |jdtƒ¡W5QRX|jd
dd} |d
} t | | ¡|jd
dd} d| dd…<|r^t |d
|d
¡| dk ¡rpt‚n| dk ¡spt‚dS)Nrrr)Ú1Ú2r3r4Ú3)r3r4r5)ÚAÚBr6r7z Timestamp('1999-12-31 00:00:00')©Úmatchr)Úaxis)Úcopyr)ÚxsÚitemsr+ÚisnanÚAssertionErrorrÚdtypeZobject_ÚpytestÚraisesÚKeyErrorÚreÚescaper    ÚtmÚassert_series_equalÚall) ÚselfZ float_frameZdatetime_frameÚusing_copy_on_writeZfloat_frame_origÚidxr<ÚitemÚvalueZ    test_dataÚframeZseriesÚexpectedr/r/r0Útest_xs's6
 
 
 
ÿ   zTestXS.test_xscCs tdgd}d|d<d|d<d|d<d    |d
<d |d <| d¡}tdddd    d gtd ƒdd}t ||¡tdddgd}| d¡}tgdtjd}t ||¡dS)Nr©r)gð?r6Úfoor7g@ÚCÚbarÚDg@ÚEr')r)ÚnamerrÚc)rWr@)rr<rr-rFrGr+Úfloat64)rIÚdfr<ÚexpÚresultrOr/r/r0Útest_xs_cornerMs 
 
zTestXS.test_xs_cornercCsDttj dd¡dddddgd}| d¡}|jd}t ||¡dS)NrrrrXrrQ)rr+ÚrandomÚrandnr<ÚilocrFrG)rIrZZcrossr[r/r/r0Útest_xs_duplicates`s 
 
zTestXS.test_xs_duplicatescCs‚tdddœdddœdddœdddœdœƒ d    d
d g¡}|jdd d d }|dd…}t ||¡|jdd    d gd d }t ||¡dS)NÚsatÚsun)rrZ
strawberryé
é éØ)ÚdayÚflavourZsalesÚyearrirhrgF)ÚlevelÚ
drop_levelr)rfrb)rÚ    set_indexr<rFÚassert_frame_equal©rIrZr\rOr/r/r0Útest_xs_keep_levelgsüÿù  zTestXS.test_xs_keep_levelc    CsÜtt d¡ dd¡tdƒtdƒd}| ¡}|rdt ¡d| d¡dd…<W5QRXt     ||¡nt|r°d}t
j t |dd| d¡dd…<W5QRX| d¡dk  ¡rØt‚n(d| d¡dd…<| d¡dk ¡sØt‚dS)    Nrrrr(érzC\nA value is trying to be set on a copy of a slice from a DataFramer8)rr+ZarangeZreshapeÚranger;rFZraises_chained_assignment_errorr<rmrArBrÚanyr?rH)rIÚusing_array_managerrJÚdmÚdf_origÚmsgr/r/r0Ú test_xs_viewws$
zTestXS.test_xs_viewN)Ú__name__Ú
__module__Ú __qualname__rPr]rarorwr/r/r/r0r2&s
&r2c @s2eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Ze    j
  d ddgdgfg¡dd„ƒZ dd„Z e    j
  ddddd„eddgddfdddd„edgddfg¡dd „ƒZe    j
  d!d"d„d#d„g¡d$d%„ƒZe    j
  d!d&d„d'd„g¡d(d)„ƒZd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:S);ÚTestXSWithMultiIndexc    Cs˜ddddddddgddddddddgg}tt|Žƒ}tj|ddgd    }ttj d
d ¡d d dg|d}|jdddd}|j    dd…dgf}t
  ||¡dS)NrTÚbazrRÚquxrr ÚfirstÚsecond©r&rér6r7rSr()rrT)rr~r©rjr:r) r-ÚziprÚ from_tuplesrr+r^r_r<r`rFrm)rIZarraysZtuplesr)rZr\rOr/r/r0Útest_xs_doc_examplesþ z(TestXSWithMultiIndex.test_xs_doc_examplecCsxtddƒ}tdƒ}tj||gddgd}ttj t|ƒd¡|dd    d
gƒ}|j    ddd }|j
ddd…f}t   ||¡dS) Niaß2ieß2ÚabcdeÚdateZsecidr€rÚXÚYÚZ©rj) rqr-rZ from_productrr+r^r_Úlenr<ÚlocrFrm)rIÚdatesÚidsr)rZr\rOr/r/r0Útest_xs_integer_key s
 z(TestXSWithMultiIndex.test_xs_integer_keycCsL|}|jddd}||j d¡dk}tddddgd    d
|_t ||¡dS) Nr rr‹rrRrTr|r}r~©rW)r<r)Zget_level_valuesrrFrm©rIÚ multiindex_dataframe_random_datarZr\rOr/r/r0Ú test_xs_level«s
z"TestXSWithMultiIndex.test_xs_levelcCstj dd¡}tdddgdddgd    d
d ggd d dgd d dgd d dggd}t||d}t|dd …dgdggd}|jd    d d}t ||¡dS)NrrrÚprrrÚyrXÚrÚzrrr©r$r%rQr‹©r+r^r_rrr<rFrm)rIr.r)rZrOr\r/r/r0Útest_xs_level_eq_2²sþ z'TestXSWithMultiIndex.test_xs_level_eq_2c    Csf|}| ¡}|jddd}|r,d|dd…<n*d}tjt|dd|dd…<W5QRXt ||¡dS)Nr rr‹rdúAA value is trying to be set on a copy of a slice from a DataFramer8©r;r<rArBrrFrm)rIr“rJrZrur\rvr/r/r0Útest_xs_setting_with_copy_error½sz4TestXSWithMultiIndex.test_xs_setting_with_copy_errorc    Csj|}| ¡}|jdddgd}|r0d|dd…<n*d}tjt|dd|dd…<W5QRXt ||¡dS)N©rrrr"r‹rdrœr8r)rIr1rJrZrur\rvr/r/r0Ú(test_xs_setting_with_copy_error_multipleÏsz=TestXSWithMultiIndex.test_xs_setting_with_copy_error_multiplez
key, level)rrrrcCsv|}t|gdƒ}|jjdks"t‚t|jdddgdƒ}t|tƒrX|jt|ƒ|d}n|j||d}t     ||¡dS)NrFrrr‹)
rr)Z    is_uniquer?r<Ú
isinstancer-ÚtuplerFrm)rIÚkeyrjr“rNrZrOr\r/r/r0Útest_xs_with_duplicatesás
z,TestXSWithMultiIndex.test_xs_with_duplicatescCsvdddddddg}t|dd    d
gd  dd    g¡}td
d d dd gitdtjddgd    dd}|jddd}t ||¡dS)N)rr†r)rZbbcder)r–Zyzcdeé)r˜Úxbcdeé)r˜Né)r˜Úzbcder¥)r˜Úybcder¨Za1Za2Zcnt©r*r§r¨r¥r¦r©rªr‘rQr˜r‹)rrlrr+Únanr<rFrm)rIÚaccrZrOr\r/r/r0Útest_xs_missing_values_in_indexïsù    þz4TestXSWithMultiIndex.test_xs_missing_values_in_indexzkey, level, exp_arr, exp_indexrÚlvl0cCs|dd…dd…fS)Nrrr/©rr/r/r0Ú<lambda>ózTestXSWithMultiIndex.<lambda>rTrRÚlvl1r‘cCs|dd…dd…fS)Nrrr/r°r/r/r0r±r²c
Cs€tj dd¡}tddgddddggddd    d    gdd    d
d ggd d gd}t||d}|j||d    d}t||ƒ|d}    t ||    ¡dS)NrrrrTrRZhelloZworldrrrrr¯r³r#r«r‚rš)
rIr£rjZexp_arrZ    exp_indexr.r)rZr\rOr/r/r0Útest_xs_named_levels_axis_eq_1s    ý z3TestXSWithMultiIndex.test_xs_named_levels_axis_eq_1ÚindexercCs|jdddgdS)NrŸrr"r‹©r<©rZr/r/r0r±r²cCs| d¡jdddS)Nrrr"r‹r¶r·r/r/r0r±r²cCs`|}dddddgg}tdgdggdgdggd    d
gd }t||td ƒd }||ƒ}t ||¡dS)Nrrrrrrrrr r!r#r'r(©rrr-rFrm©rIrµr1rZZexpected_valuesZexpected_indexrOr\r/r/r0Útest_xs_level_multiples
 
ÿÿz+TestXSWithMultiIndex.test_xs_level_multiplecCs|jdddS)Nrrr‹r¶r·r/r/r0r±,r²cCs
| d¡S)Nrr¶r·r/r/r0r±,r²cCs‚|}dddddgdddd    d
gg}td d gd dgddggddgddgddggdddgd}t||tdƒd}||ƒ}t ||¡dS)Nr
r r r rrrrrrrrrrrrrrr r!r"r#r'r(r¸r¹r/r/r0Útest_xs_level0+s   þýÿz#TestXSWithMultiIndex.test_xs_level0cCs*|}| d¡j}|jd}t ||¡dS)N©rTr r)r<ÚvaluesrFZassert_almost_equalr’r/r/r0Útest_xs_values@s 
z#TestXSWithMultiIndex.test_xs_valuescCs(|}| d¡}|jd}t ||¡dS)Nr¼)r<rrFrGr’r/r/r0Útest_xs_loc_equalityFs
 
z)TestXSWithMultiIndex.test_xs_loc_equalityc    Cs¸tdddgddggddddddgddddddggd}ttj dd    ¡|d
}|tkr\|d}|jd d… d¡}| t    ddd…f¡}t
  ||¡|j t    ddd…f}t
  ||¡dS) N)rRrTr)rRr|r)rRr}rrrrr™érrQéþÿÿÿ) rrr+r^r_rr`Z    droplevelr<rrFZ assert_equalr)rIÚframe_or_seriesr)ÚobjrOr\r/r/r0Ú+test_xs_IndexSlice_argument_not_implementedLsþ z@TestXSWithMultiIndex.test_xs_IndexSlice_argument_not_implementedc    CsRtddddgiƒ}|tkr"|d}d}tjt|d|jddd    W5QRXdS)
Nr6rrrzIndex must be a MultiIndexr8rÚasr‹)rrrArBÚ    TypeErrorr<)rIrÂrÃrvr/r/r0Útest_xs_levels_raises`s z*TestXSWithMultiIndex.test_xs_levels_raisescCsptjdddgddgd}tddd    gg|d
}|jd dd d }tddggtjddgddgdd
}t ||¡dS)N)rr)rr–)rrZlevel1Zlevel2r€rrrr«rF©r:rk)rr„rr<rFrm)rIÚmirZr\rOr/r/r0Ú"test_xs_multiindex_droplevel_falseisÿÿþz7TestXSWithMultiIndex.test_xs_multiindex_droplevel_falsecCsLtdddggtdddgƒd}|jdddd    }tddgiƒ}t ||¡dS)
NrrrrrrXr«FrÈ)rrr<rFrmrnr/r/r0Útest_xs_droplevel_falsexsz,TestXSWithMultiIndex.test_xs_droplevel_falsecCstdddggtdddgƒd}|jdddd    }t |jdd…d
fj|jdd…d
fj¡s^t‚d|jd <|r|tddgiƒ}ntddgiƒ}t     ||¡tdd dggtdddgƒd}|jdddd    }d|jd <|râtddgiƒ}n"|rötddgiƒ}ntddgiƒ}t     ||¡dS) NrrrrrrXr«FrÈr)rrg@)
rrr<r+Z shares_memoryr`Z_valuesr?rFrm)rIrsrJrZr\rOr/r/r0Útest_xs_droplevel_false_views"0
 
z1TestXSWithMultiIndex.test_xs_droplevel_false_viewc    CsZt dddg¡}tdddgddd    gg|d
}tjtd d |jd dddW5QRXdS)N)rÚmr)rÚnr)r–ÚorXrrrrrrÀr«r–r8)rr–F)rkr:)rr„rrArBrCr<)rIrÉrZr/r/r0Ú$test_xs_list_indexer_droplevel_false sz9TestXSWithMultiIndex.test_xs_list_indexer_droplevel_falseN)rxryrzr…rr”r›ržr rAÚmarkZ parametrizer¤r®rr´rºr»r¾r¿rÄrÇrÊrËrÌrÐr/r/r/r0r{ŽsH  
þþ
þþ
ÿ
    !r{)rDÚnumpyr+rAZ pandas.errorsrZpandasrrrrrrZpandas._testingZ_testingrFZpandas.tseries.offsetsr    Zfixturer1r2r{r/r/r/r0Ú<module>s    
h