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
U
­ý°d;ã@sÈddlZddlZddlZddlmZmZmZmZm    Z    m
Z
m Z m Z m Z mZmZmZmZmZddlmZddlmZGdd„dƒZGdd„dƒZGdd    „d    ƒZGd
d „d ƒZGd d „d ƒZGdd„dƒZdS)éN)Ú CategoricalÚCategoricalDtypeÚCategoricalIndexÚ    DataFrameÚ
DateOffsetÚ DatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ    TimestampÚconcatÚ
date_rangeÚ get_dummiesÚ period_range)Ú SparseArrayc@s4eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd S) Ú TestGetitemc    Cs^tdddgddggddgddggd}td    td
ƒ|d }tjtdd |dW5QRXdS) NZa_lotZonlyoneZ
notevenonei²Úér)ÚlevelsÚcodeséÿÿÿÿé)ÚindexÚcolumns©Úmatch)r    rÚrangeÚpytestÚraisesÚKeyError)ÚselfÚmiÚdf©r#ú_d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/frame/indexing/test_getitem.pyÚ test_getitem_unused_level_raisessþz,TestGetitem.test_getitem_unused_level_raisescCsvtddd}ttj dd¡|d}||d}t ||jdd…df¡t|ƒ|d}t ||jdd…df¡dS)Nz1/1/2000é)Úperiodsé
©rr)    rrÚnpÚrandomÚrandnÚtmÚassert_series_equalÚilocÚrepr)r Úrngr"Útsr#r#r$Útest_getitem_periodindex&s  z$TestGetitem.test_getitem_periodindexcCsZttdƒtdƒgƒ}tddgddggdddg|d}t|ƒ}|t|jƒ}t ||¡dS)Nz
12-31-1999z
12-31-2000rrÚbool)Údtyperr)rr rrÚlistrr-Úassert_frame_equal)r ZcatsÚexpectedZdummiesÚresultr#r#r$Ú1test_getitem_list_of_labels_categoricalindex_cols3s
 z=TestGetitem.test_getitem_list_of_labels_categoricalindex_colscCsxtddgƒ}td|iƒ}t|dd}|d}t ||¡|jdd…df}t ||¡|jdd…df}t ||¡dS)NrrÚA©Úname)rrr
r-r.r/Úloc)r Údatar"r8r9r#r#r$Ú0test_getitem_sparse_column_return_type_and_dtype<s     z<TestGetitem.test_getitem_sparse_column_return_type_and_dtypecCs<tddggtddgddd}|j}|d}t ||¡dS)Nrér;ÚBÚstring©r5r))rrr;r-r.©r r"r9r8r#r#r$Útest_getitem_string_columnsKsz'TestGetitem.test_getitem_string_columnsN)Ú__name__Ú
__module__Ú __qualname__r%r3r:r@rFr#r#r#r$rs
      rc    @sˆeZdZdd„Zdd„Zdd„Zejjde    e
e e dd    „d
d    „gd d d dddgdej dddg¡dd„ƒƒZ dd„Zdd„Zdd„ZdS)ÚTestGetitemListLikec    CsNtdgdgdgdœƒ}dddg|_tjtdd|dd    dgW5QRXdS)
Ngð?g@ç@)ÚxÚyÚzrLrNz\['y'\] not in indexrrM)rrrrr©r r"r#r#r$Útest_getitem_list_missing_keyTs z1TestGetitemListLike.test_getitem_list_missing_keycCsdttj dd¡tdƒd}d|j_|ddg}|jjdks>t‚|jdd…dd…f}t     
||¡dS)NéZAABCr)ÚfoorBÚCrA) rr*r+r,r6rr=ÚAssertionErrorr/r-r7rEr#r#r$Útest_getitem_list_duplicates^s  z0TestGetitemListLike.test_getitem_list_duplicatesc    CsTtdddgdddggdddgd    }d
}tjtt |¡d |d gW5QRXdS) NrrArrQr&éÚaÚbr)z?"None of [Index(['baf'], dtype='object')] are in the [columns]"rZbaf)rrrrÚreÚescape)r r"Úmsgr#r#r$Útest_getitem_dupe_colsis"z*TestGetitemListLike.test_getitem_dupe_colsÚidx_typecCstt|tt|ƒƒƒƒS©N)ÚdictÚziprÚlen©Úkeysr#r#r$Ú<lambda>vózTestGetitemListLike.<lambda>cCstt|tt|ƒƒƒƒ ¡Sr^)r_r`rrarcrbr#r#r$rdwrer6ÚiterrÚsetr_Ú    dict_keys)ÚidsrrrAc     Csþ|dkr|d}}n(ttj dd¡tdddgdd    d
}d }|jd|jd g}||ƒ}t||ƒƒ}t|tt    fƒr˜t
j t d d||W5QRXdS||}    |j dd…|f}
|jj|
j_t |    |
¡|||gƒ}t
j tdd||W5QRXdS)NrÚfoodér)rRÚbar)ZbazZqux)ÚpeekZaboo)ZsthZsth2r<r))Zgoodrjrúas an indexer is not supportedrz not in index)rr*r+r,rrr6Ú
isinstancergr_rrÚ    TypeErrorr>Únamesr-r7r) r r]rÚ float_frameÚframeÚmissingrcÚidxZ    idx_checkr9r8r#r#r$Útest_getitem_listlikeos0  þþ   z)TestGetitemListLike.test_getitem_listlikecCs`tdddgdddgdœƒ}dd    „d
Dƒ}|j|}tddgddgdœddgd }t ||¡dS) NrrArrQr&rV©rWrXcss|]
}|VqdSr^r#©Ú.0rLr#r#r$Ú    <genexpr>¤szBTestGetitemListLike.test_getitem_iloc_generator.<locals>.<genexpr>©rrA©r)rr/r-r7©r r"Zindexerr9r8r#r#r$Útest_getitem_iloc_generator¡s
 
z/TestGetitemListLike.test_getitem_iloc_generatorcCs\tdddgdddgdœƒ}dd    „d
Dƒ}|j|df}tddgd ddgd }t ||¡dS) NrrArrQr&rVrwcss|]
}|VqdSr^r#rxr#r#r$rz«szRTestGetitemListLike.test_getitem_iloc_two_dimensional_generator.<locals>.<genexpr>r{rX)r=r)rr/r
r-r.r}r#r#r$Ú+test_getitem_iloc_two_dimensional_generator©s
z?TestGetitemListLike.test_getitem_iloc_two_dimensional_generatorc    Cstttdƒƒtddtdddd}|jdd…}td    dd
gtdd dgd tddd d}t ||¡tttdƒƒtddtdd
ddd}|jdd…}td    dd
gtdddgd tdd
dd d}t ||¡tttdƒƒtddtdddd}|jdd…}t ||¡dS)Nr(z
01-01-2022r)Údays)r'Úfreqr|z
2022-01-01z
2022-01-03rrAz
2022-01-02zdatetime64[ns])r5r)r€Úhoursz2022-01-01 00:00:00z2022-01-02 02:00:00z2022-01-03 04:00:00r)Úminutes)    rr6rr rr>rr-r7rEr#r#r$Ú!test_getitem_iloc_dateoffset_days°sL
þýþ 
 
ÿþ
ýþ 
þz5TestGetitemListLike.test_getitem_iloc_dateoffset_daysN)rGrHrIrPrUr\rÚmarkÚ parametrizer6rfrrgrvr~rr„r#r#r#r$rJSs&
 úö  %rJc@seZdZdd„Zdd„ZdS)ÚTestGetitemCallablecCs¨|dd„}|jdd…df}t ||¡|dd„}|jdd…ddgf}t ||jdd…ddgf¡|dd…}|dd„}|jdd    gdd…f}t ||¡dS)
NcSsdS)Nr;r#©rLr#r#r$rdÝrez;TestGetitemCallable.test_getitem_callable.<locals>.<lambda>r;cSsddgS)Nr;rBr#rˆr#r#r$rdárerBrcSs
dddgS)NTFr#rˆr#r#r$rdærerrA)r>r-r.r7r/)r rrr9r8r"r#r#r$Útest_getitem_callableÛs     z)TestGetitemCallable.test_getitem_callablecCs`tddggddggd}tdgdggd}|d}t ||¡|jdd…df}t ||¡dS)NrrArWrXr))rr-r7r>)r r"r8r9r#r#r$Ú%test_loc_multiindex_columns_one_levelês  z9TestGetitemCallable.test_loc_multiindex_columns_one_levelN)rGrHrIr‰rŠr#r#r#r$r‡Úsr‡c @sâeZdZdd„Zej dddgddggdd    gd
d ggejd gejd gejdgddggfddgddggdd    gd
d ggejd gejd gdd
gd    d ggff¡dd„ƒZ    ej
dd„ƒZ dd„Z dd„Z dd„Zdd„Zdd„Zd d!„Zd"S)#ÚTestGetitemBooleanMaskc    Csºtdtjddditddddddgtdddgdd    d
d d }tdtjddditddddddgtdddgd d    d
d d }||jdk}|jg}t ||¡||jdk}|jg}t ||¡||jdk}|jdddg}t ||¡||jdk}|jdddg}t ||¡||jdk}|jdg}t ||¡||jdk}|jg}t ||¡d}t    j
t |d||jdkW5QRXt    j
t |d||jdkW5QRXdS)Nr;rVÚint64rDrrArT)ZorderedrB)r5r=r|FrWrrQz7Unordered Categoricals can only compare equality or notr) rr*Úarangerrrr/r-r7rrrp)r Zdf3Zdf4r9r8r[r#r#r$Ú(test_getitem_bool_mask_categorical_index÷sV ÿýü
 ÿýü 
 
 
     z?TestGetitemBooleanMask.test_getitem_bool_mask_categorical_indexzdata1,data2,expected_datarrArrQgà?rVérkrKg@g@g@g @r&c
Csptt |¡ƒ}tt |¡ƒ}t||gdd}||dk}dd„t|ƒDƒ}t|ƒjdddœd}    t ||    ¡dS)    Nr)ZaxisrAcSsi|]\}}|t |¡“qSr#)r*Úarray)ryÚiÚcolr#r#r$Ú
<dictcomp>Usz`TestGetitemBooleanMask.test_getitem_bool_mask_duplicate_columns_mixed_dtypes.<locals>.<dictcomp>r)rArr))rr*rr Ú    enumerateÚrenamer-r7)
r Zdata1Zdata2Z expected_dataZdf1Údf2r"r9Zexdictr8r#r#r$Ú5test_getitem_bool_mask_duplicate_columns_mixed_dtypes8s zLTestGetitemBooleanMask.test_getitem_bool_mask_duplicate_columns_mixed_dtypescCs,ddddg}tt d¡ dd¡|dd}|S)    Nr;rSÚDé rrQÚfloat64©rr5)rr*rÚreshape)r Zdupsr"r#r#r$Ú df_dup_colsYs z"TestGetitemBooleanMask.df_dup_colsc    Cs4|}d}tjt|d||jdkW5QRXdS)Nz/cannot reindex on an axis with duplicate labelsrrV)rrÚ
ValueErrorr;)r rr"r[r#r#r$Ú;test_getitem_boolean_frame_unaligned_with_duplicate_columns_szRTestGetitemBooleanMask.test_getitem_boolean_frame_unaligned_with_duplicate_columnscCsjtt d¡ dd¡ddddgdd    }||jd
k}|j|_|}||jd
k}t ||¡|jt    |ƒdS© Nr™rrQr;rBrSr˜ršr›rV)
rr*rrœrSrr-r7ÚdtypesÚstr©r rr"r8r9r#r#r$Ú2test_getitem_boolean_series_with_duplicate_columnshs
ÿ zITestGetitemBooleanMask.test_getitem_boolean_series_with_duplicate_columnscCsftt d¡ dd¡ddddgdd    }||d
k}|j|_|}||d
k}t ||¡|jt|ƒdSr )    rr*rrœrr-r7r¡r¢r£r#r#r$Ú1test_getitem_boolean_frame_with_duplicate_columnsxs
ÿ   zHTestGetitemBooleanMask.test_getitem_boolean_frame_with_duplicate_columnscCs"tƒ}||dk}t ||¡dS)Nr)rr-r7)r r"r–r#r#r$Ú%test_getitem_empty_frame_with_booleanˆs z<TestGetitemBooleanMask.test_getitem_empty_frame_with_booleancCs|tdddgdddggdddgd    }| ¡}|d}d
|jdd…<|rJ|}n"tddd
gddd
ggdddgd    }t ||¡dS) NrrArrQr&rVrWrXr)éd)rÚcopyr>r-r7)r Zusing_copy_on_writer"Zdf_origÚviewr8r#r#r$Ú5test_getitem_returns_view_when_column_is_unique_in_dfs""zLTestGetitemBooleanMask.test_getitem_returns_view_when_column_is_unique_in_dfcCsVtddddggtdgƒdddgd}|tdgƒ}tdgtdgƒd    }t ||¡dS)
NrrArrQZKEYrBrSr)r<)rÚ    frozensetr
r-r.rEr#r#r$Ú'test_getitem_frozenset_unique_in_columns$z>TestGetitemBooleanMask.test_getitem_frozenset_unique_in_columnN)rGrHrIrŽrr…r†r*Únanr—ZfixturerrŸr¤r¥r¦rªr¬r#r#r#r$r‹ös,A ýýúþ
 
    r‹c@seZdZdd„Zdd„ZdS)ÚTestGetitemSlicec
Csœt ddd¡}t|ƒ}|ddg\}}tj dd¡}|tk    rL|dd…df}|||d    }|||…}|jdd
…}    t ||    ¡|j    ||…}t ||    ¡dS) Ng$@gI@rAr&éérrr|é)
r*rrr+r,rr/r-Z assert_equalr>)
r Zframe_or_seriesÚvaluesrÚstartÚendr?Úobjr9r8r#r#r$Útest_getitem_slice_float64¦s   z+TestGetitemSlice.test_getitem_slice_float64c    CsFtdditddddgƒd}tjtdd    |d
d …W5QRXdS) NrWrz11.01.2011 22:00z11.01.2011 23:00z12.01.2011 00:00z2011-01-13 00:00r|z,Value based partial slicing on non-monotonicrz
2011-01-01z
2011-11-01)rrrrrrOr#r#r$Útest_getitem_datetime_slice¹süÿþ ÿz,TestGetitemSlice.test_getitem_datetime_sliceN)rGrHrIr¶r·r#r#r#r$r®¥sr®c@s.eZdZej dddhddig¡dd„ƒZdS)ÚTestGetitemDeprecatedIndexersÚkeyrWrXc    CsHtddgddggt ddg¡d}tjtdd    ||W5QRXdS)
NrrArrQ)rWr)rXrAr)rnr)rr    Ú from_tuplesrrrp)r r¹r"r#r#r$Ú$test_getitem_dict_and_set_deprecatedÍs  ÿzBTestGetitemDeprecatedIndexers.test_getitem_dict_and_set_deprecatedN)rGrHrIrr…r†r»r#r#r#r$r¸Ìsr¸)rYÚnumpyr*rZpandasrrrrrrrr    r
r r r rrZpandas._testingZ_testingr-Zpandas.core.arraysrrrJr‡r‹r®r¸r#r#r#r$Ú<module>s@  90'