zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
U
­ý°dºFã@s¬ddlZddlZddlmZddlmmZddl    Z
ddl    m Z m Z m Z mZmZmZmZddlmZdd„ZGdd„dƒZGdd    „d    ƒZejd
d „ƒZd d „Zdd„ZdS)éN)ÚSettingWithCopyError)Ú    DataFrameÚ
MultiIndexÚSeriesÚ    TimestampÚ
date_rangeÚisnaÚnotnacCs||ks t‚dS©N)ÚAssertionError)ÚaÚb©rúdd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexing/multiindex/test_setitem.pyÚ assert_equalsrc@sÀeZdZedfdd„Zdd„Zdd„Zdd    „Zej    d
d „ƒZ
d d „Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„ZdS),ÚTestMultiIndexSetItemNcCs.||j|<|j|}|dkr |}|||ƒdSr
)Úloc)ÚselfÚtargetÚindexersÚvalueÚ
compare_fnÚexpectedÚresultrrrÚchecks
 
 
zTestMultiIndexSetItem.checkcCsæddddddddg}tjt d    d
¡t d    d ¡gd d gd}d\}}ttj||d}|j|||fdfd    dtd||d}|j|||fdfddt||d}|j|||fdfddtd||d}|j|||fdft d¡dddS)NÚAÚwÚlr ÚxÚXÚdZprofitrédéPÚtimeZfirm©Únames)ré©ÚcolumnsÚindex)rrriüÿÿér&é)rrrr)rÚ from_productÚnpÚarangerÚnanrÚarray)rÚcolsr)ÚtÚnÚdfrrrÚtest_setitem_multiindex s.ÿý 
üz-TestMultiIndexSetItem.test_setitem_multiindexcCs¤tt d¡ dd¡d d¡td}d|d<|dd    d
k}d d g}|d|j||f<td d
d    dgd d gd}t |j||f|¡|j    |||f|dtj|ddS)Nééz    A,B,C,D,Eú,©r(ÚdtypeécÚFrr&rÚBÚCgÀX@é©r)r(©rrrrr)
rr-r.ÚreshapeÚsplitÚfloatrÚtmÚassert_frame_equalr)rr4Z row_selectionZ col_selectionÚoutputrrrÚtest_setitem_multiindex2>s$ÿûz.TestMultiIndexSetItem.test_setitem_multiindex2cCst dddgtddddg¡}t dd    gtd
d ddg¡}ttj d ¡||d }t dtdƒfdtdƒfg¡}t dtd
ƒfdtd ƒfg¡}ttj d¡||d }|j|||f|t    j
dttj d¡||d }|j||t dddƒf|t    j
d|  ¡}|j||j |jf|t    j
|ddS)Nrr=r>z
2015-01-01z
2015-04-01ZMS)ÚfreqÚfooÚbarz
2016-01-01z
2016-02-01)é r?r@z
2015-02-01)r&r&)rrrr)r&r?rA)rr,rrr-ÚrandomÚ from_tuplesrrrErFÚsliceÚcopyr)r()rÚidxr1r4ZsubidxZsubcolsÚvalsrPrrrÚtest_setitem_multiindex3QsFÿÿÿÿüü
ûz.TestMultiIndexSetItem.test_setitem_multiindex3c    CsÎt ddddddg¡t ddddddg¡t ddd¡g}ttj dd    ¡|d
d d gd  ¡}|jdgd}| ¡}|jdgd9<t     
|jdg|¡d}t j t |d|jdd9<W5QRXdS)NrKZbazZquxÚoneÚtworér*r+rr=r>r@r&zAcannot align on a multi-index with out specifying the join levels©Úmatch)r-r0r.rrMÚrandnÚ
sort_indexrrPrErFÚpytestÚraisesÚ    TypeError)rÚarraysÚdf_origrr4ÚmsgrrrÚtest_multiindex_setitem~s  ý ÿ
z-TestMultiIndexSetItem.test_multiindex_setitemc
CsÚt ddddddddœi¡}tj|jdd    d
gd |_| ¡}|jddd gd9<tj}| ¡}|j    |dd…dd…d fdd…fd9<t
  ||¡| ¡}|j    |dd…dd…d fdfd9<t
  ||¡dS)NZpricer&r?r*r7r))ÚDEZCoalÚStock)rbÚGasrc)rbZElecZDemand)ÚFRrdrc)reZSolarÚSupIm)reZWindrfZSitZComÚTyper$r+rc) rÚ    from_dictrrNr)rPÚilocÚpdZ
IndexSlicerrErF)rr_rrQr4rrrÚtest_multiindex_setitem2–s0úÿÿ ÿ, (z.TestMultiIndexSetItem.test_multiindex_setitem2cCs~ttjjdddd dd¡tdƒdddgddd    ggd
}tj|d <t d d g¡}||jd<t     
|jdt |ddgd d¡dS)Nr7é
é    ©Úsizer+Úabcr?érLr'r ççð?)r?r )r)Úname) rr-rMÚrandintrBÚlistr/r0rrEÚassert_series_equalr)rr4ÚarrrrrÚtest_multiindex_assignmentµsý
 
z0TestMultiIndexSetItem.test_multiindex_assignmentc    Cs„t ddg¡}ttjjdddd dd¡tdƒd    d    d
gd
dd ggtjd }|d jdd…j    }||j
d<t |d
dgd dd}|j
d}t   ||¡|s¤t  ||j    ¡|d|j
d<|j
d}|d}t   ||¡d|j
d<t dd
dgd dd}t   |j
d|¡d}tjt|dddddg|j
d<W5QRXtjt|ddg|j
d<W5QRXdg|j
d    d gf<|j
ddk ¡s€t‚dS)Nrrrsr7rlrmrnr+rpr?rqrL)r(r)r:Úcr&)r?rzÚint64)r)rtr:gà?Úfloat64z@Must have equal len keys and value when setting with an iterablerWrr*)r-r0rrMrurBrvr{riÚvaluesrrrErwZassert_numpy_array_equalr[r\Ú
ValueErrorÚallr )rÚusing_copy_on_writerxr4ÚviewÚexprr`rrrÚ'test_multiindex_assignment_single_dtypeÄs8ü
 
 
 
z=TestMultiIndexSetItem.test_multiindex_assignment_single_dtypec
Cs®d}d}dd„ttt |¡ ¡ƒDƒ}|dd…}ttjjd||fdtj|d}|     |¡ 
¡}|j |dd…d    }tj |d
<|D]&\}}t |j d ¡}    |    |j|d
f<q‚dS) Nr!rlcSsg|] }d|‘qS)rr)Ú.0ÚnumrrrÚ
<listcomp>÷sz>TestMultiIndexSetItem.test_groupby_example.<locals>.<listcomp>r7rn)r:r(r?)ÚlevelZnew_colr)ÚmapÚstrr-r.ÚtolistrrMrur{Ú    set_indexrZÚgroupbyr/Úshaper)
rZNUM_ROWSZNUM_COLSZ    col_namesZ
index_colsr4ÚgrprtZdf2Únew_valsrrrÚtest_groupby_exampleós ý
 z*TestMultiIndexSetItem.test_groupby_examplec    Cs¦|}|d}tj|d<t|jdd…ƒ ¡s0t‚t|jdd…ƒ ¡sJt‚t|jdd…ƒ ¡sdt‚tj|d<t|jdƒs€t‚tj    t
dd|dW5QRXdS)    Nr)éÐr+é*éA)r‘r+rlé1Z49rW) r-r/rr}rr r    rir[r\ÚKeyError)rÚ/multiindex_year_month_day_dataframe_random_dataÚymdÚsrrrÚtest_series_setitem    s
 
z)TestMultiIndexSetItem.test_series_setitemc    Csø|}|j ¡}|j ¡}||dk}| |dk¡}t ||¡d||dk<d||dk<t |j|¡d||dk<d||dk<t |j|¡d||dd…dk<t |dd…|dd…dkd¡t |j|¡t    j
t ddd||d<W5QRXdS)Nrr7r&éÿÿÿÿzboolean values onlyrW) ÚTrPr}ÚwhererErFZassert_almost_equalr-Zputmaskr[r\r])rÚ multiindex_dataframe_random_dataÚframer4r}rrrrrÚ"test_frame_getitem_setitem_booleans"
 
      "z8TestMultiIndexSetItem.test_frame_getitem_setitem_booleancCsddgdddgg}dddddgdddddgg}t||dd    gd
}td ddd d dgi|d}|jdd…d f}t |d |¡|j|jdd …d f}t |d dd …|¡|jdd…dd…f}t ||¡|}d|jdd…d f<d|d <t ||¡d|jdd…dd…f<t ||¡dS)NÚt1Út2r r rzrr*r&Úid)ÚcodesÚlevelsr%rr+érq©r)rl)rrrrErwr)rF)rr¤r£Zmidxr4rrrrÚ%test_frame_getitem_setitem_multislice2s   z;TestMultiIndexSetItem.test_frame_getitem_setitem_multislicecCs€ttj dd¡ddddgddddggd}| ¡}|d|d<t |d|d¡| ¡}|dj|d<t |d|d¡dS)Nrlr?r r rr*©r()rr-rMrYrPrErFr})rr4ÚcprrrÚtest_frame_setitem_multi_columnIs ÿ z5TestMultiIndexSetItem.test_frame_setitem_multi_columncCsÀt dddg¡}tdddg|d}d|d    <|d    jd
k ¡s@t‚dd dg|d<|d|d    <|d}|d}|d}tj||d d tj||d d |jdks t‚|jdks®t‚|jdks¼t‚dS)N©rÚ1©rÚ2©r=r¬r*r+r7r@rrrrr&F)Z check_names)    rrNrr}rr rErwrt)rr(r4Z    sliced_a1Z    sliced_a2Z    sliced_b1rrrÚ test_frame_setitem_multi_column2Ws z6TestMultiIndexSetItem.test_frame_setitem_multi_column2cCsH|}|dd…}|jddddgf}|jddddg}t ||¡dS)Nr7)r‘r*rVrr=r>)rrErw)rr–r—r4rrrrrÚ#test_loc_getitem_tuple_plus_columnsns
 z9TestMultiIndexSetItem.test_loc_getitem_tuple_plus_columnsc    CsÂtdddgddggddddddgddddddggd}ttj t|ƒd¡|dddd    gd
}t ||¡}|jdd…}|     |j
dd…¡}t  ||¡d |jdd…<|jdd…d kj   ¡s¾t‚dS) Nrr*r&)r¤r£r?r r rzr r@r¥)rrr-rMrYÚlenrEÚget_objrÚreindexr)rr}rr )rZframe_or_seriesr)ÚobjÚresr‚rrrÚ'test_loc_getitem_setitem_slice_integersysÿ
ÿ  z=TestMultiIndexSetItem.test_loc_getitem_setitem_slice_integerscCsd|}|j}|d}|| ¡k|d<t |d|| ¡k¡|jdgd}t |d|| ¡k¡dS)N)rJrUr¨)r›ZmedianrErwr´)rrržZdftr˜Z    reindexedrrrÚtest_setitem_change_dtypeŠsz/TestMultiIndexSetItem.test_setitem_change_dtypecCs~|}|jdddg}d|j|<|j|jdk ¡s6t‚| ¡}|d}d||<|r`t ||¡n|j|dfdk ¡szt‚dS)Nr*r?r7r;r=éa)r)rr}rr rPrErF)rrr€ržZsubsetZframe_originalÚcolrrrÚtest_set_column_scalar_with_loc•s
z5TestMultiIndexSetItem.test_set_column_scalar_with_loccCsttddddgddddgddddggtd    ƒd
}| d d g¡}t d g¡}d|j|df<| d ¡ddk ¡spt‚dS)Nr*rrÚyÚYr&ÚzÚZÚABCDr¨rr=©r*r*Ú_r>)    rrvr‹rrNrÚxsrr )rr4ÚmirrrÚtest_nonunique_assignment_1750§s ÿ z4TestMultiIndexSetItem.test_nonunique_assignment_1750cCsZt dddg¡}tt d¡ d¡|td}|j ¡}|d     tj
¡|d<t   |j|¡dS)Nr«r¯r­r+)r*r+r9r) rrNrr-r.rBÚobjectr)rPZastyper|rEZassert_index_equal)rr1r4r)rrrÚ test_astype_assignment_with_dups³s
 
z6TestMultiIndexSetItem.test_astype_assignment_with_dupscCsjtjdddgddgd}tddd    g|d
gd }tjd d dd|jd<td
d ddgi|d}t ||¡dS)N)r rz)r r)r r Úl1Úl2r$rr*r&Úe)Údatar)r(r;éer{)r:)r rÊr!r¦)rrNrr-r.rrErF)rr)r4rrrrÚtest_setitem_nonmonotonic½sÿz/TestMultiIndexSetItem.test_setitem_nonmonotonic)Ú__name__Ú
__module__Ú __qualname__rrr5rHrSÚtdZ&skip_array_manager_not_yet_implementedrarkryrƒrr™rŸr§rªr°r±r·r¸r»rÅrÇrÍrrrrrs,-
/   
rc@seZdZdd„Zdd„ZdS)Ú"TestSetitemWithExpansionMultiIndexcCsšddddddgddddddgdd    d
dddgg}tt|Žƒ}t |¡}ttj d d ¡|d }| ¡}| ¡}dddd g|d<dddd g|d<t     
||¡dS)Nr ÚtopZroutine1Zroutine2ÚZODZresult1Zresult2ZwxZwyr?rVr¨r*r&r+r )r rÔrÔ) ÚsortedÚziprrNrr-rMrYrPrErF)rr^Ztuplesr)r4rrrrrÚ#test_setitem_new_column_mixed_depthÉsý 
zFTestSetitemWithExpansionMultiIndex.test_setitem_new_column_mixed_depthcCs\t dddg¡}tddgddgdd    gg|d
}tddd œƒ}||d <|d  ¡ ¡sXt‚dS) N)Ú1aZ2a)rØZ2b)rØZ2cr*r&r+r?r7rVr¦)rÁ)r*r&Únew)rrNrrrrr )rZmixr4r˜rrrÚtest_setitem_new_column_all_naÚs
zATestSetitemWithExpansionMultiIndex.test_setitem_new_column_all_naN)rÎrÏrÐr×rÚrrrrrÒÈsrÒc    Csz|j}|rNtjtddd|djdd…<W5QRX|djdk ¡svt‚n(d|djdd…<|djdk ¡svt‚dS)Nz    read-onlyrWrrJ)r›r[r\r~r}rr )rr€r4rrrÚtest_frame_setitem_view_directãsrÛc    CsZ|j}|r,t ¡d|dd<W5QRXn*d}tjt|dd|dd<W5QRXdS©Nr&rJrTzAA value is trying to be set on a copy of a slice from a DataFramerW)r›rEÚraises_chained_assignment_errorr[r\r)rr€r4r`rrrÚtest_frame_setitem_copy_raisesôs
rÞc    Csv|j}|}| ¡}|r8t ¡d|dd<W5QRXn*d}tjt|dd|dd<W5QRX|}t ||¡dSrÜ)r›rPrErÝr[r\rrF)rr€ržrr4r`rrrrÚ test_frame_setitem_copy_no_writes
rß)Únumpyr-r[Z pandas.errorsrZpandas.util._test_decoratorsÚutilZ_test_decoratorsrÑZpandasrjrrrrrrr    Zpandas._testingZ_testingrErrrÒZskip_array_manager_invalid_testrÛrÞrßrrrrÚ<module>s  $     3