@@ -28,23 +28,23 @@ def test_append(self, sort, float_frame):
28
28
begin_frame = float_frame .reindex (begin_index )
29
29
end_frame = float_frame .reindex (end_index )
30
30
31
- appended = begin_frame . _append_internal ( end_frame )
31
+ appended = concat ([ begin_frame , end_frame ] )
32
32
tm .assert_almost_equal (appended ["A" ], float_frame ["A" ])
33
33
34
34
del end_frame ["A" ]
35
- partial_appended = begin_frame . _append_internal ( end_frame , sort = sort )
35
+ partial_appended = concat ([ begin_frame , end_frame ] , sort = sort )
36
36
assert "A" in partial_appended
37
37
38
- partial_appended = end_frame . _append_internal ( begin_frame , sort = sort )
38
+ partial_appended = concat ([ end_frame , begin_frame ] , sort = sort )
39
39
assert "A" in partial_appended
40
40
41
41
# mixed type handling
42
- appended = mixed_frame [:5 ]. _append_internal ( mixed_frame [5 :])
42
+ appended = concat ([ mixed_frame [:5 ], mixed_frame [5 :] ])
43
43
tm .assert_frame_equal (appended , mixed_frame )
44
44
45
45
# what to test here
46
- mixed_appended = mixed_frame [:5 ]. _append_internal ( float_frame [5 :], sort = sort )
47
- mixed_appended2 = float_frame [:5 ]. _append_internal ( mixed_frame [5 :], sort = sort )
46
+ mixed_appended = concat ([ mixed_frame [:5 ], float_frame [5 :] ], sort = sort )
47
+ mixed_appended2 = concat ([ float_frame [:5 ], mixed_frame [5 :] ], sort = sort )
48
48
49
49
# all equal except 'foo' column
50
50
tm .assert_frame_equal (
@@ -55,18 +55,18 @@ def test_append(self, sort, float_frame):
55
55
def test_append_empty (self , float_frame ):
56
56
empty = DataFrame ()
57
57
58
- appended = float_frame . _append_internal ( empty )
58
+ appended = concat ([ float_frame , empty ] )
59
59
tm .assert_frame_equal (float_frame , appended )
60
60
assert appended is not float_frame
61
61
62
- appended = empty . _append_internal ( float_frame )
62
+ appended = concat ([ empty , float_frame ] )
63
63
tm .assert_frame_equal (float_frame , appended )
64
64
assert appended is not float_frame
65
65
66
66
def test_append_overlap_raises (self , float_frame ):
67
67
msg = "Indexes have overlapping values"
68
68
with pytest .raises (ValueError , match = msg ):
69
- float_frame . _append_internal ( float_frame , verify_integrity = True )
69
+ concat ([ float_frame , float_frame ] , verify_integrity = True )
70
70
71
71
def test_append_new_columns (self ):
72
72
# see gh-6129: new columns
@@ -85,7 +85,7 @@ def test_append_new_columns(self):
85
85
def test_append_length0_frame (self , sort ):
86
86
df = DataFrame (columns = ["A" , "B" , "C" ])
87
87
df3 = DataFrame (index = [0 , 1 ], columns = ["A" , "B" ])
88
- df5 = df . _append_internal ( df3 , sort = sort )
88
+ df5 = concat ([ df , df3 ] , sort = sort )
89
89
90
90
expected = DataFrame (index = [0 , 1 ], columns = ["A" , "B" , "C" ])
91
91
tm .assert_frame_equal (df5 , expected )
@@ -100,7 +100,7 @@ def test_append_records(self):
100
100
df1 = DataFrame (arr1 )
101
101
df2 = DataFrame (arr2 )
102
102
103
- result = df1 . _append_internal ( df2 , ignore_index = True )
103
+ result = concat ([ df1 , df2 ] , ignore_index = True )
104
104
expected = DataFrame (np .concatenate ((arr1 , arr2 )))
105
105
tm .assert_frame_equal (result , expected )
106
106
@@ -109,7 +109,7 @@ def test_append_sorts(self, sort):
109
109
df1 = DataFrame ({"a" : [1 , 2 ], "b" : [1 , 2 ]}, columns = ["b" , "a" ])
110
110
df2 = DataFrame ({"a" : [1 , 2 ], "c" : [3 , 4 ]}, index = [2 , 3 ])
111
111
112
- result = df1 . _append_internal ( df2 , sort = sort )
112
+ result = concat ([ df1 , df2 ] , sort = sort )
113
113
114
114
# for None / True
115
115
expected = DataFrame (
@@ -133,36 +133,18 @@ def test_append_different_columns(self, sort):
133
133
a = df [:5 ].loc [:, ["bools" , "ints" , "floats" ]]
134
134
b = df [5 :].loc [:, ["strings" , "ints" , "floats" ]]
135
135
136
- appended = a . _append_internal ( b , sort = sort )
136
+ appended = concat ([ a , b ] , sort = sort )
137
137
assert isna (appended ["strings" ][0 :4 ]).all ()
138
138
assert isna (appended ["bools" ][5 :]).all ()
139
139
140
- def test_append_many (self , sort , float_frame ):
141
- chunks = [
142
- float_frame [:5 ],
143
- float_frame [5 :10 ],
144
- float_frame [10 :15 ],
145
- float_frame [15 :],
146
- ]
147
-
148
- result = chunks [0 ]._append_internal (chunks [1 :])
149
- tm .assert_frame_equal (result , float_frame )
150
-
151
- chunks [- 1 ] = chunks [- 1 ].copy ()
152
- chunks [- 1 ]["foo" ] = "bar"
153
- result = chunks [0 ]._append_internal (chunks [1 :], sort = sort )
154
- tm .assert_frame_equal (result .loc [:, float_frame .columns ], float_frame )
155
- assert (result ["foo" ][15 :] == "bar" ).all ()
156
- assert result ["foo" ][:15 ].isna ().all ()
157
-
158
140
def test_append_preserve_index_name (self ):
159
141
# #980
160
142
df1 = DataFrame (columns = ["A" , "B" , "C" ])
161
143
df1 = df1 .set_index (["A" ])
162
144
df2 = DataFrame (data = [[1 , 4 , 7 ], [2 , 5 , 8 ], [3 , 6 , 9 ]], columns = ["A" , "B" , "C" ])
163
145
df2 = df2 .set_index (["A" ])
164
146
165
- result = df1 . _append_internal ( df2 )
147
+ result = concat ([ df1 , df2 ] )
166
148
assert result .index .name == "A"
167
149
168
150
indexes_can_append = [
@@ -285,7 +267,7 @@ def test_append_dtype_coerce(self, sort):
285
267
axis = 1 ,
286
268
sort = sort ,
287
269
)
288
- result = df1 . _append_internal ( df2 , ignore_index = True , sort = sort )
270
+ result = concat ([ df1 , df2 ] , ignore_index = True , sort = sort )
289
271
if sort :
290
272
expected = expected [["end_time" , "start_time" ]]
291
273
else :
@@ -297,7 +279,7 @@ def test_append_missing_column_proper_upcast(self, sort):
297
279
df1 = DataFrame ({"A" : np .array ([1 , 2 , 3 , 4 ], dtype = "i8" )})
298
280
df2 = DataFrame ({"B" : np .array ([True , False , True , False ], dtype = bool )})
299
281
300
- appended = df1 . _append_internal ( df2 , ignore_index = True , sort = sort )
282
+ appended = concat ([ df1 , df2 ] , sort = sort )
301
283
assert appended ["A" ].dtype == "f8"
302
284
assert appended ["B" ].dtype == "O"
303
285
@@ -323,27 +305,20 @@ def test_append_empty_frame_to_series_with_dateutil_tz(self):
323
305
result_b = result_a ._append_internal (ser , ignore_index = True )
324
306
tm .assert_frame_equal (result_b , expected )
325
307
326
- result = df ._append_internal ([ser , ser ], ignore_index = True )
327
- tm .assert_frame_equal (result , expected )
328
-
329
308
def test_append_empty_tz_frame_with_datetime64ns (self ):
330
309
# https://github.com/pandas-dev/pandas/issues/35460
331
310
df = DataFrame (columns = ["a" ]).astype ("datetime64[ns, UTC]" )
332
311
333
- # pd.NaT gets inferred as tz-naive, so append result is tz-naive
334
- result = df ._append_internal ({"a" : pd .NaT }, ignore_index = True )
335
- expected = DataFrame ({"a" : [pd .NaT ]}, dtype = object )
336
- tm .assert_frame_equal (result , expected )
337
-
338
312
# also test with typed value to append
339
313
df = DataFrame (columns = ["a" ]).astype ("datetime64[ns, UTC]" )
340
- other = Series ({"a" : pd .NaT }, dtype = "datetime64[ns]" )
341
- result = df ._append_internal (other , ignore_index = True )
314
+ other = Series ({"a" : pd .NaT }, dtype = "datetime64[ns]" ).to_frame ().T
315
+ result = concat ([df , other ], ignore_index = True )
316
+ expected = DataFrame ({"a" : [pd .NaT ]}, dtype = object )
342
317
tm .assert_frame_equal (result , expected )
343
318
344
319
# mismatched tz
345
- other = Series ({"a" : pd .NaT }, dtype = "datetime64[ns, US/Pacific]" )
346
- result = df . _append_internal ( other , ignore_index = True )
320
+ other = Series ({"a" : pd .NaT }, dtype = "datetime64[ns, US/Pacific]" ). to_frame (). T
321
+ result = concat ([ df , other ] , ignore_index = True )
347
322
expected = DataFrame ({"a" : [pd .NaT ]}).astype (object )
348
323
tm .assert_frame_equal (result , expected )
349
324
@@ -356,7 +331,7 @@ def test_append_empty_frame_with_timedelta64ns_nat(self, dtype_str, val):
356
331
df = DataFrame (columns = ["a" ]).astype (dtype_str )
357
332
358
333
other = DataFrame ({"a" : [np .timedelta64 (val , "ns" )]})
359
- result = df . _append_internal ( other , ignore_index = True )
334
+ result = concat ([ df , other ] )
360
335
361
336
expected = other .astype (object )
362
337
tm .assert_frame_equal (result , expected )
@@ -370,7 +345,7 @@ def test_append_frame_with_timedelta64ns_nat(self, dtype_str, val):
370
345
df = DataFrame ({"a" : pd .array ([1 ], dtype = dtype_str )})
371
346
372
347
other = DataFrame ({"a" : [np .timedelta64 (val , "ns" )]})
373
- result = df . _append_internal ( other , ignore_index = True )
348
+ result = concat ([ df , other ] , ignore_index = True )
374
349
375
350
expected = DataFrame ({"a" : [df .iloc [0 , 0 ], other .iloc [0 , 0 ]]}, dtype = object )
376
351
tm .assert_frame_equal (result , expected )
0 commit comments