zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
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
U
­ý°dDã@sxddlmZddlZddlZddlmZddlZddlm    Z    m
Z
m Z m Z m Z ddlmZGdd„dƒZGdd„dƒZdS)    é)ÚdeepcopyN)ÚPerformanceWarning)Ú    DataFrameÚIndexÚ
MultiIndexÚSeriesÚconcatc
@s`eZdZdd„Zej ddddddd    d
g¡d d „ƒZd d„Zdd„Z    dd„Z
dd„Z dd„Z dS)ÚTestIndexConcatcCsÔtdddgdddgddd    gd
œƒ}td d d dgiƒ}tdddgƒ|_tdddgƒ|_t||gdd|d}tj}t|||dgdddd gdddd gddd    |ggtddddgƒd}|sÄ|jddddg}t ||¡dS)NÚaÚbÚcééég@gš™™™™™    @g333333ó?)Ztest1Ztest2Útest3rgÍÌÌÌÌÌ@gš™™™™™@g333333@ÚxÚyÚzÚqT)ÚaxisÚ ignore_indexÚsort©Úindex)    rrrrÚnpÚnanÚlocÚtmÚassert_frame_equal)ÚselfrZframe1Zframe2Zv1rÚexpected©r!ú]d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/reshape/concat/test_index.pyÚtest_concat_ignore_indexs&ÿ
 
 
 
üù    z(TestIndexConcat.test_concat_ignore_indexz#name_in1,name_in2,name_in3,name_out)Úidxr$r$r$)r$r$NN)r$NNN)Úidx1Úidx2NN)r%r%r&N)r%r&Zidx3N)NNNNc
Cs¾tdddg|dtdddg|dtdddg|dg}dd„t|d    d
d gƒDƒ}t|d d }tdddddg|d}tdd dtjtjgtjdd dtjgtjtjdd dgdœ|d}    t ||    ¡dS)Nr
r r ©ÚnameÚdÚecSs&g|]\}}t|dddgi|d‘qS)rr rr)r)Ú.0Úir r!r!r"Ú
<listcomp>@sz@TestIndexConcat.test_concat_same_index_names.<locals>.<listcomp>rrrr ©rrr)rrrr)rÚziprrrrrr)
rZname_in1Zname_in2Zname_in3Zname_outÚindicesÚframesÚresultZexp_indr r!r!r"Útest_concat_same_index_names-s"ýÿ ýú    z,TestIndexConcat.test_concat_same_index_namescCsÊttj dd¡tdƒttdƒddd}ttj dd¡tdƒttdƒddd}t||gdd    gd
d gd }t||gdd    gd
gd }t|jjƒ}d |d <|jj    |ddt
  ||¡|jj|jjksÆt ‚dS)NrÚABCÚabcZindex_ar')ÚcolumnsrZindex_bÚkey0Úkey1Zlvl0Zlvl1©ÚkeysÚnamesr T)Zinplace) rrÚrandomZrandÚlistrrrr;Z    set_namesrrÚAssertionError)rr
r r2Úexpr;r!r!r"Útest_concat_rename_indexQs" ý ý  z(TestIndexConcat.test_concat_rename_indexcCsPtddgƒ}t||g|dd}|r*|dkr<|j|jk    sLt‚n|j|jksLt‚dS)Nr rT©rÚcopy©rr)rrrr>)rrÚusing_copy_on_writeZserÚcombr!r!r"Útest_concat_copy_index_seriesgs
  z-TestIndexConcat.test_concat_copy_index_seriescCsªtddgddggddgd}t||g|dd    }|sT|j|jk    sBt‚|j|jk    s¦t‚nR|d
kr~|j|jk    slt‚|j|jks¦t‚n(|d kr¦|j|jks–t‚|j|jk    s¦t‚dS) Nr rrér
r ©r6TrArC)r r6)rrrr>r6)rrrDÚdfrEr!r!r"Útest_concat_copy_index_framepsz,TestIndexConcat.test_concat_copy_index_framecCs¨tdddgdd}tdddgd    d}t||gdd
d }t|jtjƒsHt‚tddgddgddggƒ}tj    ||d
d
d tdddgƒ}tdddgƒ}t||gdd d }t|jtjƒs´t‚tddgddgddggƒ}t d¡|_tj    ||d
d
d tddgddgdœƒ}tddgddgdœƒ}t||gdd
d }tddgddgddgddggddgd}tj    ||d
d
d t||gdd
d }tddddgddddggƒ}tj    ||d
d
d dS)Nr rrrr'rGéérT)rr©Zcheck_index_typeZcheck_column_typeF)ÚAÚBéérrNrOrH)
rrÚ
isinstancer6ÚpdÚ
RangeIndexr>rrr)rÚs1Ús2Úresr?Údf1Údf2r!r!r"Útest_default_index~s* (z"TestIndexConcat.test_default_indexcCs$ttjjdddd dd¡ddddgd}t||gd    d
}t |jdd…dd…f|¡t |jdd…dd…f|¡t||gdd
}t |jdd…|¡t |jdd…|¡tttj     dd¡ddd d gdttjjddd d dd ¡ddgdgd    d
}t||gd    d
}t |jdd…dd…f|¡t |jdd…dd…f|¡t||gdd
}t |jdd…|¡t |jdd…|¡|jdd…dd…f 
|jdd…¡}t ||¡|jdd…dd…f 
|jdd…¡ 
|jdd…¡}t ||¡t||gdd
}| 
|¡}t ||¡dS)Nré
é()ÚsizerGrNÚCrHr r.rOérrLrQé    ) rrr<ÚrandintZreshaperrrÚilocÚrandnÚ_append)rrIr2r r!r!r"Útest_dups_indexžs@
þÿþù
& 6 
zTestIndexConcat.test_dups_indexN) Ú__name__Ú
__module__Ú __qualname__r#ÚpytestÚmarkÚ parametrizer3r@rFrJrZrer!r!r!r"r    s$ùþ
     r    c @sLeZdZdd„Zdd„Zdd„Zdd„Zej     d    d
ge
d ƒgd ge   d d¡gdgddggdge jddd dgg¡ej     dd
ge
d ƒgd ge   d d¡gdgddggdge jddd dgg¡eedœdd„ƒƒZdd„Zdd„Zdd„Zej     d d!d"ggd!d"d"ggg¡d#d$„ƒZd%d&„Zd'd(„Zd)d*„Zej     d+d,d-d.g¡d/d0„ƒZd1d2„Zd3S)4ÚTestMultiIndexConcatcCsp|}|j}t||gddgdgd}|jjd|jks8t‚t |jd|¡t |jd|¡|jjdkslt‚dS)Nrr Ú    iterationr9)rmr)rrr;r>rrrZnlevels)rZ multiindex_dataframe_random_dataÚframerr2r!r!r"Ú test_concat_multiindex_with_keysÏsz5TestMultiIndexConcat.test_concat_multiindex_with_keysc    Cs:tjdgtdƒgddgd}tdtdƒi|tjd}t||gddgdgd    }tjddgdgtdƒgdddgd}tdttdƒƒdi|tjd}t     ||¡t||dd…gddgdgd    }dgddgd}dgd
}ttdƒƒttdƒƒ}tt
|||ƒƒ}tj |dddgd}td|i|tjd}t     ||¡dS) Nr rKÚlevel1©r;Úcol)rÚdtyperÚlevel2r9rP) rÚ from_productÚrangerrÚint32rr=rrr/Ú from_tuples)    rrrIr2r rtrpZno_nameZtuplesr!r!r"Ú/test_concat_multiindex_with_none_in_index_namesÙs"ÿ   
zDTestMultiIndexConcat.test_concat_multiindex_with_none_in_index_namescCsªttj dd¡ƒ}tt d¡t d¡gt t d¡d¡t     t d¡d¡gd|_
t |j dddgdd…f|j dgdd…fgƒ}|j ddddgdd…f}t  ||¡dS)Nr`rr©ÚlevelsÚcodesrGrK)rrr<rcrrSrTÚrepeatÚarangeZtilerrrbrr)rrIrWr?r!r!r"Ú!test_concat_multiindex_rangeindexîs"þ0z6TestMultiIndexConcat.test_concat_multiindex_rangeindexc
CsÐt dgdgg¡}tdg|d}t dgdgg¡}tdg|d}||dœ}tdd    gdgddggddgddgddggd
ddgd }tdgdgg|d}tt|ƒd
gd }t ||¡t|d
gd }    t |    |¡dS) Nr
r rrr r )rUrVrUrVZtestname)r{r|r;rq)rrurrrrr)
rZexample_multiindex1Zexample_dataframe1Zexample_multiindex2Zexample_dataframe2Z example_dictÚexpected_indexr Z result_copyZresult_no_copyr!r!r"Ú(test_concat_multiindex_dfs_with_deepcopyýs
ý z=TestMultiIndexConcat.test_concat_multiindex_dfs_with_deepcopyÚmi1_listr
rr g@g@r rNrOr)Z2017Z2018)ÚstartÚendZperiodsÚmi2_list)r‚r…c
    Cst |¡}t |¡}tt dt|ƒf¡|d}tt dt|ƒf¡|d}|d|dkrŠt|dt|dƒgddddgddddggd}nDt|d|dt|dƒt|dƒgddddgddddggd}tt dt|ƒf¡|d}t d¡t    ||fdd}    W5QRXt 
||    ¡dS)Nr rHrrzrrr.) rrurrÚzerosÚlenr=rÚassert_produces_warningrr)
rr‚r…Zmi1Zmi2rXrYZ expected_miÚ expected_dfÚ    result_dfr!r!r"Ú*test_concat_with_various_multiindex_dtypess&
 
þþû z?TestMultiIndexConcat.test_concat_with_various_multiindex_dtypescCsˆtddddgidddgd}t|gdgd    }dgdddgg}|j}t |¡}t ||¡|}tddddgit |¡d}t ||¡dS)
Nrrr
r r Ú1Ú2rÚX©r:)rrrrrurÚassert_index_equalr)rrIÚ    iterablesZ result_indexr€rŠr‰r!r!r"Útest_concat_multiindex_Bs
  ÿz,TestMultiIndexConcat.test_concat_multiindex_c    Cs¶tddgiƒ}tddgiƒ}tddgiƒ}t|||gdddgd}tjtdd    |jd
dd…f}W5QRXtddddgitd
d d
gƒd }tjtdd    |jd
}W5QRXt ||¡tdd d dgiƒ}tdd dgiƒ}tdddgiƒ}t|||gdddgd}tjtdd    |jd
dd…f}W5QRXtdddddddgdddddddgtdƒdœƒ     d dg¡}ddg|j
_ tjtdd    |jd
dd…f}W5QRXt ||¡dS)Nr(r rrrrrzindexing past lexsort depth©Úmatch)rr)rrrr
r r r)rZaababcd)r
r r() rrrrˆrrrrr=Z    set_indexrr;)rrXrYZdf3Zdf_aZout_aZdf_bZout_br!r!r"Útest_concat_with_key_not_uniqueSsVÿ ÿÿ ÿýÿú ÿz4TestMultiIndexConcat.test_concat_with_key_not_uniquec    Cshtddgidgd}tddgidgd}d}tjt|d$t||gddgdddggdW5QRXdS)    NrNr rrrz*Level values not unique: \['x', 'y', 'y'\]r“)r:r{©rriZraisesÚ
ValueErrorr)rrXrYÚmsgr!r!r"Ú"test_concat_with_duplicated_levelss
z7TestMultiIndexConcat.test_concat_with_duplicated_levelsr{rrc    CsZtddgidgd}tddgidgd}d}tjt|dt||g|dW5QRXdS)    NrNr rrrz+levels supported only when keys is not Noner“)r{r–)rr{rXrYr˜r!r!r"Ú&test_concat_with_levels_with_none_keys‰s
z;TestMultiIndexConcat.test_concat_with_levels_with_none_keyscCsvtdddgiƒ}tdddgiƒ}t||gddd}tddgddgdœƒ}t ||¡t dd¡}tj|j|dd    dS)
Nr
r rr T)rr)r
r r)Úexact)rrrrrSrTrr)rrXrYr2r r€r!r!r"Útest_concat_range_index_result‘s  z3TestMultiIndexConcat.test_concat_range_index_resultcCstdddggtdddgddd}tddggtddgddd}t||gdd    dd
}tddd gddtjggtdddgddd}t ||¡dS) Nrr rrÚobject©rsrHTÚouter©rÚjoinrçð?©rrrrrrr)rrXrYr2r r!r!r"Útest_concat_index_keep_dtypeœs"ÿz1TestMultiIndexConcat.test_concat_index_keep_dtypecCstdddggtdddg|dd}tddggtddg|dd}t||gdddd    }tddd
gddtjggtdddg|dd}t ||¡dS) Nrr rrržrHTrŸr r¢r£)rZany_numeric_ea_dtyperXrYr2r r!r!r"Ú'test_concat_index_keep_dtype_ea_numeric¦s
ÿþz<TestMultiIndexConcat.test_concat_index_keep_dtype_ea_numericrsZInt8ZInt16ÚInt32cCstdddggtdddg|dd}tddggtddgddd}t||gdd    dd
}tddd gddtjggtdddgddd}t ||¡dS) Nrr rrržrHr¦TrŸr r¢r£)rrsrXrYr2r r!r!r"Útest_concat_index_find_common³s"ÿz2TestMultiIndexConcat.test_concat_index_find_commoncCs¶tdddgƒ}tddgƒ}tddddgƒ}tgtd}t||||gddddd    }tdgd
tjgdgd
tjgdtjgd tjgd dgtjggtd}tj||d d d dS)Nr
r r r)ržFrŸr )rr¡rrrrTrM)rrrrrrrr)rrUrVZs3Zs4r2r r!r!r"Ú(test_concat_axis_1_sort_false_rangeindex¾s2  
ÿ üù    ÿz=TestMultiIndexConcat.test_concat_axis_1_sort_false_rangeindexN)rfrgrhroryrrrirjrkrvrr~rSZ
date_ranger=r‹r’r•r™ršrœr¤r¥r§r¨r!r!r!r"rlÎsD
  üþ      üþ
ÿ.
 
 
 
rl)rBrÚnumpyrriZ pandas.errorsrZpandasrSrrrrrZpandas._testingZ_testingrr    rlr!r!r!r"Ú<module>s   <