Skip to content

Commit 728be93

Browse files
authored
ENH: Rename DataFrame._append to _append_internal (#62137)
1 parent a158a74 commit 728be93

File tree

9 files changed

+109
-99
lines changed

9 files changed

+109
-99
lines changed

pandas/core/frame.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3721,7 +3721,7 @@ def memory_usage(self, index: bool = True, deep: bool = False) -> Series:
37213721
index_memory_usage = self._constructor_sliced(
37223722
self.index.memory_usage(deep=deep), index=["Index"]
37233723
)
3724-
result = index_memory_usage._append(result)
3724+
result = index_memory_usage._append_internal(result)
37253725
return result
37263726

37273727
def transpose(
@@ -10882,7 +10882,7 @@ def infer(x):
1088210882
# ----------------------------------------------------------------------
1088310883
# Merging / joining methods
1088410884

10885-
def _append(
10885+
def _append_internal(
1088610886
self,
1088710887
other,
1088810888
ignore_index: bool = False,
@@ -11745,7 +11745,7 @@ def c(x):
1174511745
idx_diff = result_index.difference(correl.index)
1174611746

1174711747
if len(idx_diff) > 0:
11748-
correl = correl._append(
11748+
correl = correl._append_internal(
1174911749
Series([np.nan] * len(idx_diff), index=idx_diff)
1175011750
)
1175111751

pandas/core/indexing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2323,7 +2323,7 @@ def _setitem_with_indexer_missing(self, indexer, value):
23232323
df = df.infer_objects()
23242324
self.obj._mgr = df._mgr
23252325
else:
2326-
self.obj._mgr = self.obj._append(value)._mgr
2326+
self.obj._mgr = self.obj._append_internal(value)._mgr
23272327

23282328
def _ensure_iterable_column_indexer(self, column_indexer):
23292329
"""

pandas/core/reshape/pivot.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,9 @@ def _add_margins(
450450
if not values and isinstance(table, ABCSeries):
451451
# If there are no values and the table is a series, then there is only
452452
# one column in the data. Compute grand margin and return it.
453-
return table._append(table._constructor({key: grand_margin[margins_name]}))
453+
return table._append_internal(
454+
table._constructor({key: grand_margin[margins_name]})
455+
)
454456

455457
elif values:
456458
marginal_result_set = _generate_marginal_results(
@@ -502,7 +504,7 @@ def _add_margins(
502504
margin_dummy[cols] = margin_dummy[cols].apply(
503505
maybe_downcast_to_dtype, args=(dtype,)
504506
)
505-
result = result._append(margin_dummy)
507+
result = result._append_internal(margin_dummy)
506508
result.index.names = row_names
507509

508510
return result
@@ -1185,7 +1187,7 @@ def _normalize(
11851187

11861188
elif normalize == "index":
11871189
index_margin = index_margin / index_margin.sum()
1188-
table = table._append(index_margin, ignore_index=True)
1190+
table = table._append_internal(index_margin, ignore_index=True)
11891191
table = table.fillna(0)
11901192
table.index = table_index
11911193

@@ -1194,7 +1196,7 @@ def _normalize(
11941196
index_margin = index_margin / index_margin.sum()
11951197
index_margin.loc[margins_name] = 1
11961198
table = concat([table, column_margin], axis=1)
1197-
table = table._append(index_margin, ignore_index=True)
1199+
table = table._append_internal(index_margin, ignore_index=True)
11981200

11991201
table = table.fillna(0)
12001202
table.index = table_index

pandas/core/series.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2988,7 +2988,7 @@ def searchsorted( # type: ignore[override]
29882988
# -------------------------------------------------------------------
29892989
# Combination
29902990

2991-
def _append(
2991+
def _append_internal(
29922992
self, to_append, ignore_index: bool = False, verify_integrity: bool = False
29932993
):
29942994
from pandas.core.reshape.concat import concat

pandas/tests/reshape/concat/test_append.py

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,23 @@ def test_append(self, sort, float_frame):
2828
begin_frame = float_frame.reindex(begin_index)
2929
end_frame = float_frame.reindex(end_index)
3030

31-
appended = begin_frame._append(end_frame)
31+
appended = begin_frame._append_internal(end_frame)
3232
tm.assert_almost_equal(appended["A"], float_frame["A"])
3333

3434
del end_frame["A"]
35-
partial_appended = begin_frame._append(end_frame, sort=sort)
35+
partial_appended = begin_frame._append_internal(end_frame, sort=sort)
3636
assert "A" in partial_appended
3737

38-
partial_appended = end_frame._append(begin_frame, sort=sort)
38+
partial_appended = end_frame._append_internal(begin_frame, sort=sort)
3939
assert "A" in partial_appended
4040

4141
# mixed type handling
42-
appended = mixed_frame[:5]._append(mixed_frame[5:])
42+
appended = mixed_frame[:5]._append_internal(mixed_frame[5:])
4343
tm.assert_frame_equal(appended, mixed_frame)
4444

4545
# what to test here
46-
mixed_appended = mixed_frame[:5]._append(float_frame[5:], sort=sort)
47-
mixed_appended2 = float_frame[:5]._append(mixed_frame[5:], sort=sort)
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)
4848

4949
# all equal except 'foo' column
5050
tm.assert_frame_equal(
@@ -55,18 +55,18 @@ def test_append(self, sort, float_frame):
5555
def test_append_empty(self, float_frame):
5656
empty = DataFrame()
5757

58-
appended = float_frame._append(empty)
58+
appended = float_frame._append_internal(empty)
5959
tm.assert_frame_equal(float_frame, appended)
6060
assert appended is not float_frame
6161

62-
appended = empty._append(float_frame)
62+
appended = empty._append_internal(float_frame)
6363
tm.assert_frame_equal(float_frame, appended)
6464
assert appended is not float_frame
6565

6666
def test_append_overlap_raises(self, float_frame):
6767
msg = "Indexes have overlapping values"
6868
with pytest.raises(ValueError, match=msg):
69-
float_frame._append(float_frame, verify_integrity=True)
69+
float_frame._append_internal(float_frame, verify_integrity=True)
7070

7171
def test_append_new_columns(self):
7272
# see gh-6129: new columns
@@ -79,13 +79,13 @@ def test_append_new_columns(self):
7979
"c": {"z": 7},
8080
}
8181
)
82-
result = df._append(row)
82+
result = df._append_internal(row)
8383
tm.assert_frame_equal(result, expected)
8484

8585
def test_append_length0_frame(self, sort):
8686
df = DataFrame(columns=["A", "B", "C"])
8787
df3 = DataFrame(index=[0, 1], columns=["A", "B"])
88-
df5 = df._append(df3, sort=sort)
88+
df5 = df._append_internal(df3, sort=sort)
8989

9090
expected = DataFrame(index=[0, 1], columns=["A", "B", "C"])
9191
tm.assert_frame_equal(df5, expected)
@@ -100,7 +100,7 @@ def test_append_records(self):
100100
df1 = DataFrame(arr1)
101101
df2 = DataFrame(arr2)
102102

103-
result = df1._append(df2, ignore_index=True)
103+
result = df1._append_internal(df2, ignore_index=True)
104104
expected = DataFrame(np.concatenate((arr1, arr2)))
105105
tm.assert_frame_equal(result, expected)
106106

@@ -109,7 +109,7 @@ def test_append_sorts(self, sort):
109109
df1 = DataFrame({"a": [1, 2], "b": [1, 2]}, columns=["b", "a"])
110110
df2 = DataFrame({"a": [1, 2], "c": [3, 4]}, index=[2, 3])
111111

112-
result = df1._append(df2, sort=sort)
112+
result = df1._append_internal(df2, sort=sort)
113113

114114
# for None / True
115115
expected = DataFrame(
@@ -133,7 +133,7 @@ def test_append_different_columns(self, sort):
133133
a = df[:5].loc[:, ["bools", "ints", "floats"]]
134134
b = df[5:].loc[:, ["strings", "ints", "floats"]]
135135

136-
appended = a._append(b, sort=sort)
136+
appended = a._append_internal(b, sort=sort)
137137
assert isna(appended["strings"][0:4]).all()
138138
assert isna(appended["bools"][5:]).all()
139139

@@ -145,12 +145,12 @@ def test_append_many(self, sort, float_frame):
145145
float_frame[15:],
146146
]
147147

148-
result = chunks[0]._append(chunks[1:])
148+
result = chunks[0]._append_internal(chunks[1:])
149149
tm.assert_frame_equal(result, float_frame)
150150

151151
chunks[-1] = chunks[-1].copy()
152152
chunks[-1]["foo"] = "bar"
153-
result = chunks[0]._append(chunks[1:], sort=sort)
153+
result = chunks[0]._append_internal(chunks[1:], sort=sort)
154154
tm.assert_frame_equal(result.loc[:, float_frame.columns], float_frame)
155155
assert (result["foo"][15:] == "bar").all()
156156
assert result["foo"][:15].isna().all()
@@ -162,7 +162,7 @@ def test_append_preserve_index_name(self):
162162
df2 = DataFrame(data=[[1, 4, 7], [2, 5, 8], [3, 6, 9]], columns=["A", "B", "C"])
163163
df2 = df2.set_index(["A"])
164164

165-
result = df1._append(df2)
165+
result = df1._append_internal(df2)
166166
assert result.index.name == "A"
167167

168168
indexes_can_append = [
@@ -193,7 +193,7 @@ def test_append_same_columns_type(self, index):
193193
df = DataFrame([[1, 2, 3], [4, 5, 6]], columns=index)
194194
ser_index = index[:2]
195195
ser = Series([7, 8], index=ser_index, name=2)
196-
result = df._append(ser)
196+
result = df._append_internal(ser)
197197
expected = DataFrame(
198198
[[1, 2, 3.0], [4, 5, 6], [7, 8, np.nan]], index=[0, 1, 2], columns=index
199199
)
@@ -208,7 +208,7 @@ def test_append_same_columns_type(self, index):
208208
index = index[:2]
209209
df = DataFrame([[1, 2], [4, 5]], columns=index)
210210
ser = Series([7, 8, 9], index=ser_index, name=2)
211-
result = df._append(ser)
211+
result = df._append_internal(ser)
212212
expected = DataFrame(
213213
[[1, 2, np.nan], [4, 5, np.nan], [7, 8, 9]],
214214
index=[0, 1, 2],
@@ -229,7 +229,7 @@ def test_append_different_columns_types(self, df_columns, series_index):
229229
df = DataFrame([[1, 2, 3], [4, 5, 6]], columns=df_columns)
230230
ser = Series([7, 8, 9], index=series_index, name=2)
231231

232-
result = df._append(ser)
232+
result = df._append_internal(ser)
233233
idx_diff = ser.index.difference(df_columns)
234234
combined_columns = Index(df_columns.tolist()).append(idx_diff)
235235
expected = DataFrame(
@@ -285,7 +285,7 @@ def test_append_dtype_coerce(self, sort):
285285
axis=1,
286286
sort=sort,
287287
)
288-
result = df1._append(df2, ignore_index=True, sort=sort)
288+
result = df1._append_internal(df2, ignore_index=True, sort=sort)
289289
if sort:
290290
expected = expected[["end_time", "start_time"]]
291291
else:
@@ -297,7 +297,7 @@ def test_append_missing_column_proper_upcast(self, sort):
297297
df1 = DataFrame({"A": np.array([1, 2, 3, 4], dtype="i8")})
298298
df2 = DataFrame({"B": np.array([True, False, True, False], dtype=bool)})
299299

300-
appended = df1._append(df2, ignore_index=True, sort=sort)
300+
appended = df1._append_internal(df2, ignore_index=True, sort=sort)
301301
assert appended["A"].dtype == "f8"
302302
assert appended["B"].dtype == "O"
303303

@@ -306,7 +306,7 @@ def test_append_empty_frame_to_series_with_dateutil_tz(self):
306306
date = Timestamp("2018-10-24 07:30:00", tz=dateutil.tz.tzutc())
307307
ser = Series({"a": 1.0, "b": 2.0, "date": date})
308308
df = DataFrame(columns=["c", "d"])
309-
result_a = df._append(ser, ignore_index=True)
309+
result_a = df._append_internal(ser, ignore_index=True)
310310
expected = DataFrame(
311311
[[np.nan, np.nan, 1.0, 2.0, date]], columns=["c", "d", "a", "b", "date"]
312312
)
@@ -320,30 +320,30 @@ def test_append_empty_frame_to_series_with_dateutil_tz(self):
320320
)
321321
expected["c"] = expected["c"].astype(object)
322322
expected["d"] = expected["d"].astype(object)
323-
result_b = result_a._append(ser, ignore_index=True)
323+
result_b = result_a._append_internal(ser, ignore_index=True)
324324
tm.assert_frame_equal(result_b, expected)
325325

326-
result = df._append([ser, ser], ignore_index=True)
326+
result = df._append_internal([ser, ser], ignore_index=True)
327327
tm.assert_frame_equal(result, expected)
328328

329329
def test_append_empty_tz_frame_with_datetime64ns(self):
330330
# https://github.com/pandas-dev/pandas/issues/35460
331331
df = DataFrame(columns=["a"]).astype("datetime64[ns, UTC]")
332332

333333
# pd.NaT gets inferred as tz-naive, so append result is tz-naive
334-
result = df._append({"a": pd.NaT}, ignore_index=True)
334+
result = df._append_internal({"a": pd.NaT}, ignore_index=True)
335335
expected = DataFrame({"a": [pd.NaT]}, dtype=object)
336336
tm.assert_frame_equal(result, expected)
337337

338338
# also test with typed value to append
339339
df = DataFrame(columns=["a"]).astype("datetime64[ns, UTC]")
340340
other = Series({"a": pd.NaT}, dtype="datetime64[ns]")
341-
result = df._append(other, ignore_index=True)
341+
result = df._append_internal(other, ignore_index=True)
342342
tm.assert_frame_equal(result, expected)
343343

344344
# mismatched tz
345345
other = Series({"a": pd.NaT}, dtype="datetime64[ns, US/Pacific]")
346-
result = df._append(other, ignore_index=True)
346+
result = df._append_internal(other, ignore_index=True)
347347
expected = DataFrame({"a": [pd.NaT]}).astype(object)
348348
tm.assert_frame_equal(result, expected)
349349

@@ -356,7 +356,7 @@ def test_append_empty_frame_with_timedelta64ns_nat(self, dtype_str, val):
356356
df = DataFrame(columns=["a"]).astype(dtype_str)
357357

358358
other = DataFrame({"a": [np.timedelta64(val, "ns")]})
359-
result = df._append(other, ignore_index=True)
359+
result = df._append_internal(other, ignore_index=True)
360360

361361
expected = other.astype(object)
362362
tm.assert_frame_equal(result, expected)
@@ -370,7 +370,7 @@ def test_append_frame_with_timedelta64ns_nat(self, dtype_str, val):
370370
df = DataFrame({"a": pd.array([1], dtype=dtype_str)})
371371

372372
other = DataFrame({"a": [np.timedelta64(val, "ns")]})
373-
result = df._append(other, ignore_index=True)
373+
result = df._append_internal(other, ignore_index=True)
374374

375375
expected = DataFrame({"a": [df.iloc[0, 0], other.iloc[0, 0]]}, dtype=object)
376376
tm.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)