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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
U
­ý°dµHã@sˆdZddlmZddlmZddlZddlZddlm    Z    ddl
m Z m Z m Z ddlmZej d¡Zedd    „ƒZd
d „Zej d d ddgddgg¡dd„ƒZej d ddg¡dd„ƒZedd„ƒZdd„Zedd„ƒZej dddd gid!fdd"gdd gd#œd$fdd"gdd gd%œd&fg¡d'd(„ƒZed)d*d+gƒZeej d,d dd"gid-d.d/d0d1d2d3gd4œd-ed5d6ƒed5d7ƒed5d8ƒed9d:ƒed;d<ƒed;d=ƒgd4œg¡d>d?„ƒƒZeej d,d dd"gidd.d/d0d1d2d3gd4œded5d6ƒed5d7ƒed5d8ƒed9d:ƒed;d<ƒed;d=ƒgd4œg¡d@dA„ƒƒZeej d,d dd"gidd.d/d0d1d2d3gd4œded5d6ƒed5d7ƒed5d8ƒed9d:ƒed;d<ƒed;d=ƒgd4œg¡dBdC„ƒƒZ edDdE„ƒZ!edFdG„ƒZ"edHdI„ƒZ#edJdK„ƒZ$eej dLdMdNg¡dOdP„ƒƒZ%eej d,iddig¡dQdR„ƒƒZ&ej dSidd"dd-dgfdTdd dUdVdWgidd dUdVdWgfg¡dXdY„ƒZ'ej d d5d9gdZg¡d[d\„ƒZ(ed]d^„ƒZ)eej d_d`e ddadbdcgge  *dddedfdgg¡dhfdie ddadbdcgge  *dddedjdgg¡dhfdke ddadbdcdcgge  *dddedjdgdlg¡dhfg¡dmdn„ƒƒZ+eej dddgg¡ej doddpdqgdqdpgdqdrgg¡dsdt„ƒƒƒZ,edudv„ƒZ-edwdx„ƒZ.edydz„ƒZ/ed{d|„ƒZ0ed}d~„ƒZ1edd€„ƒZ2edd‚„ƒZ3dS)ƒzx
Tests that the file header is properly handled or inferred
during parsing for all of the parsers defined in parsers.py
é)Ú
namedtuple)ÚStringION)Ú ParserError)Ú    DataFrameÚIndexÚ
MultiIndexZ pyarrow_skipc    Cs>|}d}tjt|dtdƒ}|j|dgdW5QRXdS)Nzbut only \d+ lines in file©Úmatchz,,é
©Úheader)ÚpytestÚraisesÚ
ValueErrorrÚread_csv)Ú all_parsersÚparserÚmsgÚs©rúYd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/parser/test_header.pyÚtest_read_with_bad_headers
rc    Cs8|}d}tjtdd|jt|ƒddW5QRXdS)Nú$1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
zUPassing negative integer to header is invalid. For no header, use header=None insteadréÿÿÿÿr ©r rrrr©rrÚdatarrrÚtest_negative_header#sþrr réééûÿÿÿc    Cs8|}d}tjtdd|jt|ƒ|dW5QRXdS)Nz<1,2,3,4,5
        6,7,8,9,10
        11,12,13,14,15
        z8cannot specify multi-index header with negative integersrr r)rr rrrrrÚ test_negative_multi_index_header2sÿr!TFc    Cs<|}d}d}tjt|d|jt|ƒ|dW5QRXdS)NzMyColumn
a
b
a
bz#Passing a bool to header is invalidrr )r rÚ    TypeErrorrr)rr rrrrrrÚtest_bool_header_arg@s
r#cCsf|}d}dddg}|jt|ƒ|d}tdddgd    d
d gd d dggdddgdddgd}t ||¡dS)Nzfoo,1,2,3
bar,4,5,6
baz,7,8,9
ÚAÚBÚC©Únamesérérééééé    ÚfooÚbarÚbaz©ÚindexÚcolumns©rrrÚtmÚassert_frame_equal)rrrr(ÚresultÚexpectedrrrÚtest_header_with_index_colOs
ýr;cCsD|}d}d}|jt|ƒddd}|jt|ƒddd}t ||¡dS)Nzggot,to,ignore,this,line
got,to,ignore,this,line
index,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
z7index,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
rr©r Ú    index_col©rrr7r8)rrrZdata2r9r:rrrÚtest_header_not_first_lineas r?cCsJ|}tjddddd}d}|jt|ƒddddgddgd    }t ||¡dS)
Nr+r*rr)Z r_idx_nlevelsZ c_idx_nlevelsáC0,,C_l0_g0,C_l0_g1,C_l0_g2
 
C1,,C_l1_g0,C_l1_g1,C_l1_g2
C2,,C_l2_g0,C_l2_g1,C_l2_g2
C3,,C_l3_g0,C_l3_g1,C_l3_g2
R0,R1,,,
R_l0_g0,R_l1_g0,R0C0,R0C1,R0C2
R_l0_g1,R_l1_g1,R1C0,R1C1,R1C2
R_l0_g2,R_l1_g2,R2C0,R2C1,R2C2
R_l0_g3,R_l1_g3,R3C0,R3C1,R3C2
R_l0_g4,R_l1_g4,R4C0,R4C1,R4C2
rr)r<)r7ZmakeCustomDataframerrr8©rrr:rr9rrrÚtest_header_multi_indexus
  rBz
kwargs,msgr=r0r1zLindex_col must only contain row numbers when specifying a multi-index headerr))r=r(z9cannot specify names when specifying a multi-index header)r=Zusecolsz;cannot specify usecols when specifying a multi-index headerc    CsHd}|}tjt|d(|jt|ƒfdddddgi|—ŽW5QRXdS)Nr@rr rr)rr*r)rÚkwargsrrrrrrÚtest_header_multi_index_invalid‹s rDÚ
_TestTupleÚfirstÚsecondrCr*©ÚaÚq©rIÚr©rIr©ÚbÚt©ÚcÚu©rRÚv)Zskiprowsr(rIrJrLrrOrPrRrSrUc Csr|}tddddddgddd    d
d d ggd dgt ddddddg¡d}d}|jt|ƒfddi|—Ž}t ||¡dS)Nr)rr*rr+r,r-r.r/r
é é ÚoneÚtworHrKrMrNrQrTr3zC,a,a,a,b,c,c
,q,r,s,t,u,v
,,,,,,
one,1,2,3,4,5,6
two,7,8,9,10,11,12r=r©rrÚ from_tuplesrrr7r8©rrCrr:rr9rrrÚ&test_header_multi_index_common_format1·sÿýr]c Csr|}tddddddgddd    d
d d ggd dgt ddddddg¡d}d}|jt|ƒfddi|—Ž}t ||¡dS)Nr)rr*rr+r,r-r.r/r
rVrWrXrYrHrKrMrNrQrTr3z<,a,a,a,b,c,c
,q,r,s,t,u,v
one,1,2,3,4,5,6
two,7,8,9,10,11,12r=rrZr\rrrÚ&test_header_multi_index_common_format2çsÿýr^c Cs~|}tddddddgddd    d
d d ggd dgt ddddddg¡d}|jdd}d}|jt|ƒfddi|—Ž}t ||¡dS)Nr)rr*rr+r,r-r.r/r
rVrWrXrYrHrKrMrNrQrTr3T)Zdropú2a,a,a,b,c,c
q,r,s,t,u,v
1,2,3,4,5,6
7,8,9,10,11,12r=)rrr[Z reset_indexrrr7r8r\rrrÚ&test_header_multi_index_common_format3sÿý r`c Cs¢|}ttjdddddgdddd    d
ggd d td dgƒtdddgdddddggddd ddgdd dddggddgdd}d}|jt|ƒdd gdd}t ||¡dS)Nrr*rr+r,r.r/r
rVrWÚint64©Zdtyper)r-rIrOrRrLrrPrSrUrrJ©ÚlevelsÚcodesr(r3r_r<©    rÚnpÚarrayrrrrr7r8rArrrÚ0test_header_multi_index_common_format_malformed1Fs$
ýý    ric Cs¢|}ttjdddddgdddd    d
ggd d td dgƒtdddgdddddggddd ddgdd dddggddgdd}d}|jt|ƒdd gdd}t ||¡dS)Nrr*rr+r,r.r/r
rVrWrarbr)r-rIrOrRrLrrPrSrUrrJrcr3ú1,a,a,b,c,c
q,r,s,t,u,v
1,2,3,4,5,6
7,8,9,10,11,12r<rfrArrrÚ0test_header_multi_index_common_format_malformed2[s$
ýý
rkc
Cs´|}ttjddddgddddggd    d
td d gd dggdd gdd ggdtdddgddddggdd d d gdd d dggddgdd}d}|jt|ƒdd gdd gd}t ||¡dS)Nr*rr+r,r/r
rVrWrarbr)r-rr.r)rdrerIrOrRrrPrSrUrJrcr3rjr<)rrgrhrrrr7r8rArrrÚ0test_header_multi_index_common_format_malformed3qs "ýý    rlcCs^|}ddgddgddgg}t ddg¡}t||d}d}|jt|ƒd    dgd
}t ||¡dS) Nr)rr*r)rIr$)rOr%©r5za,b
A,B
,
1,2
3,4rr )rr[rrrr7r8)rrrr5r:r9rrrÚ"test_header_multi_index_blank_line†s rnz data,header)ú 1,2,3
4,5,6N)zfoo,bar,baz
1,2,3
4,5,6rcCsF|}|jtdƒdddgd}|jt|ƒdddg|d}t ||¡dS)NrorIrOrRr'©r(r r>)rrr rr:r9rrrÚ!test_header_names_backward_compat’srqcCs6|}tdddgd}|jtdƒf|Ž}t ||¡dS)NrIrOrRrmza,b,c©rrrr7r8)rrCrr:r9rrrÚtest_read_only_header_no_rowsŸsrsz kwargs,namesr(r2ZquuxZpandacCsb|}d}tdddddgddd    d
d gd d dddgg|d}|jt|ƒfddi|—Ž}t ||¡dS)Nrr)rr*rr+r,r-r.r/r
rVrWé éérmr rr)rrCr(rrr:r9rrrÚtest_no_headerªs &ÿrwZ string_headerc    Cs<d}d}|}tjt|d|jt|ƒ|dW5QRXdS)Nz*header must be integer or list of integersz1,2
3,4rr r)rr rrrrrrÚtest_non_int_headerÁs
rxcCsHd}|}tddgddgddgdœƒ}|jt|ƒdgd}t ||¡dS)Nza,b,c
0,1,2
1,2,3rr)rr*)rIrOrRr rr)rrrr:r9rrrÚtest_singleton_headerÌs
ryz data,expectedz#A,A,A,B
one,one,one,two
0,40,34,0.1é(é"gš™™™™™¹?)r$rX)r$zone.1)r$zone.2)r%rYrmz%A,A,A,B
one,one,one.1,two
0,40,34,0.1)r$zone.1.1z/A,A,A,B,B
one,one,one.1,two,two
0,40,34,0.1,0.1)r%ztwo.1cCs*|}|jt|ƒddgd}t ||¡dS)Nrr)r r>)rrr:rr9rrrÚtest_mangles_multi_index×s)r|r5ÚZUnnamedZ
NotUnnamedc Csê|}ddg}|dkr,d |p"ddg¡d}nd dg|p>ddg¡d}|jt|ƒ||d}g}|dkrrdddg}t|ƒD]2\}}    |    s¢d|dkr”|n|d›d    }    | |    ¡qzt t|d
d gƒ¡}td d gddgg|d}
t     
||
¡dS)Nrr)ú,r}z
0,1
2,3
4,5
z
,0,1
0,2,3
1,4,5
r<z    Unnamed: Z_level_0Ú0Ú1rr*rr+rm) ÚjoinrrÚ    enumerateÚappendrr[Úziprr7r8) rr=r5rr rr9Z exp_columnsÚiÚcolr:rrrÚtest_multi_index_unnameds 
 r‡cCsN|}d}|jt|ƒddddgd}tddgd    d
gd d gd œƒ}t ||¡dS)Nza, b
1,2,3
5,6,4
rr$r%r&)r r(r)r+rr,r*r)r$r%r&r6©rrrr9r:rrrÚ6test_names_longer_than_header_but_equal_with_data_rows-s
r‰cCs–|}d}d}t dddddg¡}tdd    d
d d gdd    d
d d gg|d}|jt|ƒddgd}t ||jdd…¡|jt|ƒddgd}t ||¡dS)NzFMale, Male, Male, Female, Female
R, R, L, R, R
.86, .67, .88, .78, .81z^Male, Male, Male, Female, Female
R, R, L, R, R
.86, .67, .88, .78, .81
.86, .67, .88, .78, .82)ZMaleÚR)ú Maleú R)r‹z L)ú FemalerŒ)rz R.1g…ëQ¸…ë?gq=
×£på?g)\Âõ(ì?gö(\Âõè?gìQ¸…ëé?g=
×£p=ê?rmrr)r )rr[rrrr7r8Ziloc)rrÚs1Ús2Úmir:Zdf1Zdf2rrrÚ test_read_csv_multiindex_columns:s(ÿûÿ    ÿr‘c    Cs<|}d}tjtdd|jt|ƒddgdW5QRXdS)Nz1row11,row12,row13
row21,row22, row23
row31,row32
z1Header rows must have an equal number of columns.rrrr ©r rrrr)rrZcaserrrÚ'test_read_csv_multi_header_length_checkZsÿr“cCsX|}d}|jt|ƒddgdd}tdddgdtjtjgd    œd
d d gd }t ||¡dS)Nzx,1,5
y,2
z,3
rIrOrpr)rr*r+©rIrOÚxÚyÚz)r4)rrrrgÚnanr7r8rˆrrrÚ#test_header_none_and_implicit_indexjsÿr™c    Cs>|}d}tjtdd|jt|ƒddgddW5QRXdS)Núx,1
y,2,5
z,3
z"Expected 2 fields in line 2, saw 3rrIrOrpr’rrrrÚ1test_header_none_and_implicit_index_in_second_rowvsr›cCsH|}d}|jt|ƒddgddd}tddgdd    gd
œƒ}t ||¡dS) NršrIrOÚskip)r(r Z on_bad_linesr•r—r)r*r”r6rˆrrrÚ&test_header_none_and_on_bad_lines_skipsÿrc    CsB|}d}d}tjt|d|jt|ƒdddgdW5QRXdS)Nza,b
1,2
z;Passed header=\[0,1,2\], len of 3, but only 2 lines in filerrr)rr r)rrrrrrrÚtest_header_missing_rows‹s
rž)4Ú__doc__Ú collectionsrÚiorÚnumpyrgr Z pandas.errorsrZpandasrrrZpandas._testingZ_testingr7ÚmarkZ usefixturesZ skip_pyarrowrrZ parametrizer!r#r;r?rBrDrEr]r^r`rirkrlrnrqrsrwrxryr[r|r‡r‰r‘r“r™r›rržrrrrÚ<module>sˆ     
    
 
 
 
 
ý    þþóþ
 
úþ úþóþ 
úþ úþóþ 
úþ úþóþ 
 
 
 
ÿ           þþþ
 
 
 
 
 
 
ÿþþ
 
ÿþþ
ûÿþþíþ& ÿ"